savetxt如何将类型从float64转换为int或double
我一直在尝试使用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 个回答
5
如果你想设置浮点数的小数位数,可以使用下面的代码:
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就是你想要的小数位数。
38
你可以通过 np.savetxt
里的 fmt
参数来定义输出的格式,比如:
如果你想把浮点数保留到小数点后五位:
np.savetxt("file.txt", output, fmt='%10.5f', delimiter='\t')
如果你想保存整数:
np.savetxt("file.txt", output, fmt='%i', delimiter='\t')
在这里你可以找到关于 fmt
参数更多的使用信息:
http://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.html