问题
因此,我想使用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/