python csv编写器以科学表示法编写数组

python csv编写器以科学表示法编写数组,python,csv,Python,Csv,我有一个浮点数矩阵,我正试图将其写入csv文件中,但是csv writer使用科学记数法将其写入,我希望保留原始记数法中的数字,我尝试添加“%.2f%”,但这导致了以下错误: “TypeError:只能将长度为1的数组转换为Python标量” 您需要在调用np.savetxt时使用fmt=“%g”。这将写入不带尾随零的数字。或者,如果您想要“干净”格式的NUBMER,您可以使用例如fmt=“%.4f”(或您喜欢的任何其他格式) 默认情况下,np.savetxt默认为%.18e格式,这将允许写入f

我有一个浮点数矩阵,我正试图将其写入csv文件中,但是csv writer使用科学记数法将其写入,我希望保留原始记数法中的数字,我尝试添加“%.2f%”,但这导致了以下错误:

“TypeError:只能将长度为1的数组转换为Python标量”


您需要在调用
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")