numpy.savetxt-将一列保存为int,其余列为浮点数?

Chr*_*neB 4 python arrays numpy text-files number-formatting

问题

所以我有一个2D数组(151行,52列)我想使用np.savetxt保存为文本文件.但是,我希望第一列的数字保存为整数(1950,1951等),而其余数据保存为精度5(如果舍入为4)浮点数(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")
Run Code Online (Sandbox Code Playgroud)

该数组将第一列保存为精度为5的浮点数,如其余数据(1950.0000,1951.0000等).当我尝试指定不同的格式时......

np.savetxt('array.txt',data,fmt="%i %1.4f")
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:"ValueError:fmt%格式错误:%i%1.4f"

问题

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

wfl*_*nny 11

data有3列,所以你需要供应3 '%format'秒.例如:

np.savetxt('array.txt', data, fmt='%i %1.4f %1.4f')
Run Code Online (Sandbox Code Playgroud)

应该管用.如果你有超过3列,你可以尝试类似的东西:

np.savetxt('array.txt', data, fmt=' '.join(['%i'] + ['%1.4f']*N))
Run Code Online (Sandbox Code Playgroud)

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