在python中写入csv时限制小数
我在文件上循环,对于这些文件中的每一个,我计算出一个包含4000多个(固定数量)特征的列表。这些特性由函数计算并返回为在python中写入csv时限制小数,python,arrays,csv,numpy,decimal,Python,Arrays,Csv,Numpy,Decimal,我在文件上循环,对于这些文件中的每一个,我计算出一个包含4000多个(固定数量)特征的列表。这些特性由函数计算并返回为numpy.array 我想写一个CSV文件,每个文件一行(每行是一个numpy.array和4000多个元素) 我目前正在使用Python的csv库,即使我的数组是四舍五入的(多亏了np.around),csv文件也包含很多数字,例如03024999999999而不是03025 我知道这可能来自Python,但我想知道是否有任何方法可以在输出文件中避免这种情况(通过将其写入字符
numpy.array
我想写一个CSV文件,每个文件一行(每行是一个numpy.array
和4000多个元素)
我目前正在使用Python的csv
库,即使我的数组是四舍五入的(多亏了np.around
),csv文件也包含很多数字,例如03024999999999
而不是03025
我知道这可能来自Python,但我想知道是否有任何方法可以在输出文件中避免这种情况(通过将其写入字符串?)
复制问题的代码示例如下:
import numpy as np
import csv
for i in range(10) :
row = np.around(np.random.random(4000), decimals=5)
with open('output.csv', "ab") as fp:
wr = csv.writer(fp, dialect='excel')
wr.writerow(row)
您可以这样使用:
import numpy as np
with open('output.csv', 'w') as fh:
for i in range(10): # loop over features
row = np.random.random(4000)
np.savetxt(fh, row.reshape(1, -1), fmt='%.5e', delimiter=',')
您可以这样使用:
import numpy as np
with open('output.csv', 'w') as fh:
for i in range(10): # loop over features
row = np.random.random(4000)
np.savetxt(fh, row.reshape(1, -1), fmt='%.5e', delimiter=',')
谢谢,
np.savetxt
是否有'a'
模式?使用您的备选方案,我只能看到CSV中的最后一行。CSV的编写就好像我在CSV
库中使用了'w'
模式一样,最后使用将open('output.CSV',“ab”)作为fp:np.savetxt(fp,row.reforme(1,row.shape[0]),fmt='%.5e',delimiter=',')解决了这个问题。
。谢谢@朱利安:我更新了我的答案,使之更适合您的使用情况谢谢,请问np.savetxt
是否有'a'
模式?使用您的备选方案,我只能看到CSV中的最后一行。CSV的编写就好像我在CSV
库中使用了'w'
模式一样,最后使用将open('output.CSV',“ab”)作为fp:np.savetxt(fp,row.reforme(1,row.shape[0]),fmt='%.5e',delimiter=',')解决了这个问题。
。谢谢@朱利安:我更新了我的答案,使之更适合您的用例