python csv writer用科学记数法写数组

时间:2017-05-01 04:37:46

标签: python csv

我有一个浮点数矩阵,我试图写入csv文件,但是csv writer用科学记数法写,我想把数字留在原始表示法中,我试着添加&# 34。%2F" %但导致以下错误:

" TypeError:只有length-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..

1 个答案:

答案 0 :(得分:1)

您需要fmt="%g"来调用np.savetxt。这将写入没有尾随零的数字。或者,如果你想要“干净”格式的nubmers你可以使用例如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