将数组元素追加到文件的一行

时间:2020-09-24 19:55:19

标签: python numpy

我想将数组作为一行附加到flie上,

import numpy as np

data1 = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
data2 = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])

g = open(f'data.csv', 'w')
for data in [data1,data2]:
  g.write(data)
g.close()

我知道了

Traceback (most recent call last):
  File "test.py", line 12, in <module>
    g.write(data)
TypeError: write() argument must be str, not numpy.ndarray

然后我用

  g.write(f'{data}\n')

输出为

[0 1 2 3 4 5 6 7 8 9]
[1 2 3 4 5 6 7 8 9 0]

但是如何摆脱[]符号

0 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 0

答案更新

感谢评论,我可以先堆叠数组,然后保存它。也许还有一些优雅的方法可以直接附加它们!幸运的是,问题已经结束,请写评论,我将在这里更新!

import numpy as np

data1 = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
data2 = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])

data = np.stack((data1,data2))
np.savetxt('data.csv', data, fmt='%i ', newline='\n')

1 个答案:

答案 0 :(得分:3)

尝试:

np.savetxt('data.csv', data, fmt='%i ', newline='')

更多数组的示例:

data1 = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
data2 = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])
data = np.array([data1, data2])

np.savetxt('data.csv', data, fmt='%i ', newline='\n')