Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中写入csv时限制小数_Python_Arrays_Csv_Numpy_Decimal - Fatal编程技术网

在python中写入csv时限制小数

在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,但我想知道是否有任何方法可以在输出文件中避免这种情况(通过将其写入字符

我在文件上循环,对于这些文件中的每一个,我计算出一个包含4000多个(固定数量)特征的列表。这些特性由函数计算并返回为
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=',')解决了这个问题。
。谢谢@朱利安:我更新了我的答案,使之更适合您的用例