txt - python存成csv




將NumPy數組轉儲到csv文件中 (5)

有沒有辦法將NumPy數組轉換為CSV文件? 我有一個2D NumPy數組,需要將其轉儲為可讀格式。


tofile是一個方便的功能:

import numpy as np
a = np.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
a.tofile('foo.csv',sep=',',format='%10.5f')

手冊頁有一些有用的註釋:

這是用於快速存儲陣列數據的便捷功能。 關於字節順序和精度的信息丟失了,所以這種方法不適合用於在不同字節順序的機器之間歸檔數據或傳輸數據的文件。 其中一些問題可以通過將數據輸出為文本文件來克服,但速度和文件大小都會增加。

注意。 此功能不會產生多行csv文件,它將所有內容保存到一行。


numpy.savetxt將數組保存到文本文件。

import numpy
a = numpy.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
numpy.savetxt("foo.csv", a, delimiter=",")

你也可以用純python來完成,而不使用任何模塊。

# format as a block of csv text to do whatever you want
csv_rows = ["{},{}".format(i, j) for i, j in array]
csv_text = "\n".join(csv_rows)

# write it to a file
with open('file.csv', 'w') as f:
    f.write(csv_text)

如果你想將你的numpy數組(例如your_array = np.array([[1,2],[3,4]]) )保存到一個單元格中,可以先用your_array.tolist()將其轉換。

然後以正常方式將其保存到一個單元格中,使用delimiter=';' 並且csv文件中的單元格將如下所示[[1, 2], [2, 4]]

然後你可以像這樣恢復你的數組: your_array = np.array(ast.literal_eval(cell_string))


用熊貓輕鬆快捷

import pandas as pd 
df = pd.DataFrame(np_array)
df.to_csv("file_path.csv")




numpy