也许你更喜欢做这样的事情:
# Column of row titles
rows = np.array(['row1', 'row2', 'row3'], dtype='|S20')[:, np.newaxis]
with open('test.csv', 'w') as f:
np.savetxt(f, np.hstack((rows, data)), delimiter=', ', fmt='%s')
这是隐式转换data
到一个字符串数组,在我的计算机中每百万个项目大约需要 200 毫秒。
数据类型'|S20'
means 二十个字符的字符串。如果太低,您的数字将会被削减:
>>> np.asarray([123], dtype='|S2')
array(['12'],
dtype='|S2')
另一种选择,从我有限的测试来看,速度较慢,但给你更多的控制权,并且不存在使用时的斩波问题np.char.mod
, like
# Column of row titles
rows = np.array(['row1', 'row2', 'row3'])[:, np.newaxis]
str_data = np.char.mod("%10.6f", data)
with open('test.csv', 'w') as f:
np.savetxt(f, np.hstack((rows, str_data)), delimiter=', ', fmt='%s')