将numpy数组保存到txt
Posted
技术标签:
【中文标题】将numpy数组保存到txt【英文标题】:save numpy arrays to txt 【发布时间】:2016-09-13 10:15:08 【问题描述】:我必须为每个列数不同的数组 (q, I),我想将它们保存在一个 txt 文件中,保留列的顺序,这意味着在 txt 文件中数组应该是这样的:
q, I0, I1, I2, ...
我的数组的形状是:
q.shape = (300, )
I.shape = (300, 12)
我试过这个:
save_arrays = np.array(zip(q, I))
np.savetxt('dummy.txt', save_arrays, delimiter='\t', newline='\r\n',
fmt='%.5f', header='q [A-1]/I [a.u.]')
save_arrays的形状是:
save_arrays.shape = (300, 2)
它有两列而不是 13 列。这些列是单列数组 q 和多列数组 I。
无论如何,我也遇到了这个 TypeError:
TypeError: Mismatch between array dtype ('object') and format specifier ('%.5f %.5f')
感谢任何帮助。
【问题讨论】:
你能写一个你的数组数据的例子吗? 试试save_arrays = np.hstack((q[:,np.newaxis],I))
非常感谢@VBB。它做到了我想要的!
np.savetxt('dummy.txt', np.insert(I, 0, q, axis=1), fmt='%.5f')
是否提供所需的输出?尽管@VBB 的答案在性能方面可能会更好——所以我希望他们能给出答案:)
【参考方案1】:
试试save_arrays = np.hstack((q[:,np.newaxis],I))
【讨论】:
np.column_stack
也应该可以工作,无需调整q
的形状。
谢谢@MarkDickinson,我不知道np.column_stack
。以上是关于将numpy数组保存到txt的主要内容,如果未能解决你的问题,请参考以下文章
np.savetxt()——将array保存到txt文件,并保持原格式