7
我想使用行和列「標題」信息(如表格)將二維數組保存到CSV文件中。我知道我可以使用numpy.savetxt的頭文件參數來保存列名,但是有沒有簡單的方法可以包含一些其他數組(或列表)作爲第一列數據(如行標題)?Python/Numpy - 使用列和行標題保存數組
下面是我目前如何做的一個例子。有沒有更好的方法來包含這些行標題,也許有一些我不知道的savetxt技巧?
import csv
import numpy as np
data = np.arange(12).reshape(3,4)
# Add a '' for the first column because the row titles go there...
cols = ['', 'col1', 'col2', 'col3', 'col4']
rows = ['row1', 'row2', 'row3']
with open('test.csv', 'wb') as f:
writer = csv.writer(f)
writer.writerow(cols)
for row_title, data_row in zip(rows, data):
writer.writerow([row_title] + data_row.tolist())
使用hstack必須在內存中重新創建數組,雖然,對吧?所以如果數據非常大,那麼我們必須重新分配這個內存。對於我的具體應用,這不太可能是真正的問題,但只是一個值得一提的問題。而且這可能沒有任何辦法。看起來像savetxt應該在內部實現,即使它必須做類似於我的解決方案(但在底層C代碼中)。 – 2012-03-29 21:34:29
是的,你說得對。我認爲也許所有這些開銷都可以用記錄數組來避免,並且使用fmt接受格式化運算符列表的事實,例如'fmt = ['%s','%f',...]',但是我不熟悉它們,所以這只是一個猜測。 – jorgeca 2012-03-29 21:55:41
雅,我也考慮過一個記錄陣列。我認爲你是對的,可以使用它......但我希望避免它們......我想我會選擇哪個似乎是兩個惡魔中較小的一個。 – 2012-03-29 23:07:39