我想把一个2D数组保存到一个CSV文件中,其中包含行和列“header”信息(就像一个表)。我知道可以使用numpy.savetxt的header参数来保存列名,但是是否有任何简单的方法也可以将其他数组(或列表)作为数据的第一列(如行标题)?
下面是一个我目前如何做的例子。有没有更好的方法来包含这些行标题,也许是我不知道的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())
也许你更喜欢这样做:
这是隐式地将
data
转换为字符串数组,在我的计算机中,每一百万个项需要大约200毫秒。dtype
'|S20'
表示由20个字符组成的字符串。如果太低,你的号码就会被砍掉:另一个选择,我有限的测试速度比较慢,但是给了你更多的控制,并且没有切碎的问题,就是使用
np.char.mod
,比如相关问题 更多 >
编程相关推荐