Numpy savetxt将一维数组另存为列

时间:2019-03-22 16:09:00

标签: python arrays file numpy

我使用loadtxt初始化数组。

source = np.loadtxt('source.txt').astype(int)

之后,我在函数中使用此数组,其主体为:

file = open('johnson.txt', 'ab')
first = increase(np.argsort(source[0]))
np.savetxt(file, first, delimiter='-', fmt='%i')
file.close()

因此,在txt文件中,我应该有这个:

7-1-3-6-2-4-8-5

但是我有这个:

7
1
3
6
2
4
8
5

我必须以二进制模式打开文件,因为我需要向文件追加另一行。那么,我该如何解决? 谢谢!

1 个答案:

答案 0 :(得分:0)

savetxt迭代输入数组,并将每个“行”写入新行。对于典型的2d数组,将是一行。但是对于一维数组,它将是一个元素。

因此将您的写入更改为保存2d数组:

np.savetxt('test.txt', [first], delimiter=..., fmt=...)

假设first是一个1d数组,那么np.array([first])是1行2d,first[None,:]也将起作用(或reshape)。

要附加行,请以“ a”附加模式打开文件。 “ wb”二进制文件无济于事。