[英]python csv writer writes array in scientific notation
我有一个浮点数矩阵,我正尝试将其写到一个csv文件中,但是csv作家使用科学计数法将其写入,我想将这些数字保留在原始计数法中,我尝试添加“%.2f”%但导致以下错误:
“ TypeError:只能将长度为1的数组转换为Python标量”
for item in string_color_Values:
avg_color_values = [ float(item) for item in string_color_Values]
array1t = np.array(avg_color_values)
np.savetxt("test.csv", array1t, delimiter=",")
original:
[ 0.5258 1. ]
[ 0.528 1. ]
[ 0.5486 1. ]
[ 0.5545 1. ]
[ 0.732 1. ]
[ 0.7872 1. ]
[ 1. 1. ]]
Csv which i obtain:
1.2270000000035e-01,1.0000000000e+00
2.7639999999790e-01,1.0000000000e+00
etc..
您需要在对np.savetxt
的调用中使用fmt="%g"
。 这样就可以写出数字,而不能跟零。 另外,如果您想要“整洁”的格式化数字小数字,则可以使用例如fmt="%.4f"
(或任何其他喜欢的格式)。
import numpy as np
avg_color_Values = np.random.random((10,3))
array1t = np.array(avg_color_Values)
np.savetxt("test.csv", array1t, delimiter=",", fmt = "%g")
默认情况下,np.savetxt默认为%.18e
格式,这将允许在不损失精度的情况下写入float64
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.