4

我正在尝试使用 numpy.column_stack 将多个数组写入文件,但我无法将其四舍五入到小数点后两位。这是可重现的代码:

import numpy as np
A = np.array([1.1334, 4.10343, 12.4343])
B = np.array([2.1334, 5.12343, 16.23543])
C = np.array([4.1334, 4.3563, 18.36343])
np.savetxt('data.dat', np.around(np.column_stack((A, B, C)), decimals=2))

输出

1.129999999999999893e+00 2.129999999999999893e+00 4.129999999999999893e+00
4.099999999999999645e+00 5.120000000000000107e+00 4.360000000000000320e+00
1.242999999999999972e+01 1.623999999999999844e+01 1.835999999999999943e+01

简而言之,我想将条目四舍五入到小数点后两位,并且是否可以使用此方法对条目进行制表符分隔。

4

2 回答 2

3

您需要fmt在函数中使用具有正确格式的标志savetext,因此添加fmt='%.2f'within savetext,并且为了获得更优雅的结果,您也可以指定delimiter标志:

np.savetxt('data.dat', np.around(np.column_stack((A, B, C)), decimals=2),fmt='%.2f',delimiter='\t')

结果 :

1.13    2.13    4.13
4.10    5.12    4.36
12.43   16.24   18.36

numpy.savetxt(fname, X, fmt='%.18e', delimiter='', newline='\n', header='', footer='', comments='#')

将数组保存到文本文件。

于 2015-03-12T13:50:44.283 回答
1

您需要将格式指定为 np.savetxt

np.savetxt('data.dat', np.around(np.column_stack((A, B, C)), decimals=2), fmt="%.2f")
于 2015-03-12T13:50:03.533 回答