gpt4 book ai didi

python - 在python中将 float 写入csv——截断错误

转载 作者:行者123 更新时间:2023-11-30 23:45:11 27 4
gpt4 key购买 nike

我遇到了一个问题,即在 csv 写入过程中 float 被截断。这很难复制,因为它很少发生在数千个文件中,但我需要针对它的保护。下面是代码的示例:

import csv
import numpy as np
x = np.random.normal(0, .001, 1000).tolist()
draws_header = ['draw%s'%(x) for x in range(1000)]
final_output = np.array(x)
outfile = open('filepath.csv', 'w')
writer = csv.writer('filepath')
writer.writerow(first_row)
writer.writerows(final_output)
outfile.close()

根据输出(其中所有数字都必须低于 1),看起来小数字中的最后一个字符(即“...e-5”)丢失了:

draw373         draw374         draw375          draw376    
0.000744 0.003008 0.001566 9.727522

关于如何防止这种情况有什么建议吗?

最佳答案

我建议为此使用 numpy 的 csv writer。例如:

>>> import numpy as np
>>> x = np.random.normal(0, .001, 1000)
>>> draws_header = ['draw%s'%(i) for i in range(1000)]
>>> f = open('file.csv', 'w')
>>> np.savetxt(f, np.array(draws_header)[:,None].T, fmt="%s", delimiter="\t")
>>> np.savetxt(f, x[:,None].T, delimiter="\t")
>>> f.close()

这会正确序列化数字。您还可以将格式字符串传递给 savetxt 以指定如何打印浮点值。

关于python - 在python中将 float 写入csv——截断错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9692732/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com