python csv编写器以科学表示法编写数组
我有一个浮点数矩阵,我正试图将其写入csv文件中,但是csv writer使用科学记数法将其写入,我希望保留原始记数法中的数字,我尝试添加“%.2f%”,但这导致了以下错误: “TypeError:只能将长度为1的数组转换为Python标量”python csv编写器以科学表示法编写数组,python,csv,Python,Csv,我有一个浮点数矩阵,我正试图将其写入csv文件中,但是csv writer使用科学记数法将其写入,我希望保留原始记数法中的数字,我尝试添加“%.2f%”,但这导致了以下错误: “TypeError:只能将长度为1的数组转换为Python标量” 您需要在调用np.savetxt时使用fmt=“%g”。这将写入不带尾随零的数字。或者,如果您想要“干净”格式的NUBMER,您可以使用例如fmt=“%.4f”(或您喜欢的任何其他格式) 默认情况下,np.savetxt默认为%.18e格式,这将允许写入f
您需要在调用
np.savetxt
时使用fmt=“%g”
。这将写入不带尾随零的数字。或者,如果您想要“干净”格式的NUBMER,您可以使用例如fmt=“%.4f”
(或您喜欢的任何其他格式)
默认情况下,np.savetxt默认为
%.18e
格式,这将允许写入float64
s而不会丢失精度。您是否使用numpy
soley来写入CSV文件?您应该只使用csv
模块。您确定使用了正确的语法:np.savetxt(“test.csv”,array1l,“%f.2”,delimiter=“,”)
适合我。
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..
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")