我有一个浮点数矩阵,我试图写入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..
答案 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
。