将多个单独的numpy数组写入单个逗号分隔的文本文件

时间:2013-06-24 21:50:08

标签: python arrays numpy

我想采用多个numpy数组并将它们写入以逗号分隔的文本文件。以下是我原始数据的示例以及我尝试生成的最终数据:

array([[1., 3., 0., 1.],
       [2., 5., 3., 1.]].....

等等。适用于四列长度的多个不同阵列。我可以使用write()获取一个输出txt文件,但我无法将数据转换为如下所示的格式:

1., 3., 0., 1.
2., 5., 3., 1.

另外,我需要第0列整数,第1到第3列是浮点数。

干杯。

2 个答案:

答案 0 :(得分:2)

这个怎么样?

data = array([[1., 3., 0., 1.],
              [2., 5., 3., 1.]].....

with open('output.csv', 'w') as f:
    for x in data:
        f.write('%d,%f,%f,%f\n' % tuple(x))

此输出

1,3.000000,0.000000,1.000000
2,5.000000,3.000000,1.000000

如果您想要两个小数位,可以通过将%f更改为%.2f来调整浮点输出的精度。

答案 1 :(得分:0)

我建议使用pandas:

import numpy
import pandas
data = numpy.array([[1., 3., 0., 1.],
   [2., 5., 3., 1.]])
data = pandas.DataFrame(data,columns=['a','b','c','d'])
data['a'] = data['a'].astype(int)
data.to_csv('outfile.csv')