savetxt如何将类型从float64更改为int或double

时间:2011-03-17 23:04:54

标签: python numpy scipy

我一直在尝试在numpy中使用savetxt函数。我遇到的问题是,即使我认为我相应地定义了我的变量,即int()或double(),我得到的文本文件也浮在其中。我怎么能改变它?

输入如下:pNoise=[int(i), around(pNoise[0], decimals=3), around(pNoise[1], decimals=3), around(pNoise[2], decimals=3)]

savetxt行如下:savetxt(noutF, pNoisetot)

我的期望是:0 1.567 8.865而不是0.000000000000000000e+00 1.015909999999999940e+02 2.600000000000000089e-01

2 个答案:

答案 0 :(得分:22)

您可以定义如何使用fmt np.savetxt关键字格式化输出,例如:

np.savetxt("file.txt", output, fmt='%10.5f', delimiter='\t')

表示浮点数四舍五入到五位小数,或fmt='%i'表示输出为整数。

您可以在此处找到有关fmt的可能性的更多信息:

http://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.html

答案 1 :(得分:4)

如果你想在float中指定小数位数

np.savetxt("file.txt", output, fmt='%10.5f', delimiter='\t')

本例中为7位小数

np.savetxt("file.txt", output, fmt='%10.7f', delimiter='\t')

基本上,fmt =%10.Yf',其中Y指定decs的数量。