问题

因此,我想使用np.savetxt将2D数组(151行,52列)保存为文本文件。但是,我希望第一列的数字另存为整数(1950、1951等),而其余数据另存为精度5(四舍五入)的浮点数(2.7419、2.736等)。我不知道该怎么做。

代码

当我打印数组输出的前4行和3列时,它看起来像这样。

[[1950. 2.7407 2.7396]

[1951. 2.7419 2.736]

[1952. 2.741 2.7374]

[1953. 2.7417 2.7325]]

当我使用以下内容时...

np.savetxt('array.txt',data,fmt="%1.4f")

数组将第一列保存为精度为5的浮点数,就像其余数据一样(1950.0000、195.0000等)。当我尝试指定不同的格式时...
np.savetxt('array.txt',data,fmt="%i %1.4f")

我收到以下错误:“ValueError:fmt的%格式数量错误:%i%1.4f”

问题

我有没有办法将第一列另存为整数,将其余列另存为浮点数?

最佳答案

data有3列,因此您需要提供3个'%format'。例如:

np.savetxt('array.txt', data, fmt='%i %1.4f %1.4f')

应该管用。如果您有3列以上,则可以尝试以下操作:
np.savetxt('array.txt', data, fmt=' '.join(['%i'] + ['%1.4f']*N))

其中N是需要浮点格式的列数。

关于python - numpy.savetxt-将一列保存为int,其余列保存为浮点数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40030481/

10-11 22:47