将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的主要内容,如果未能解决你的问题,请参考以下文章

numpy 数组到一个文件,np.savetxt

python numpy 保存数组至文件中

Numpy数组的保存与加载

np.savetxt()——将array保存到txt文件,并保持原格式

使用 numpy numpy 将矩阵保存在 txt 文件中时出错

如何使用 numpy.savez 将带有子数组的数组保存到单独的 .npy 文件中