繁体   English   中英

python csv writer以科学计数法写数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM