行numpy数组保存为txt文件

Pal*_*lle 32 python numpy save

我有一个numpy数组

a = [1,2,3]
Run Code Online (Sandbox Code Playgroud)

我想保存到.txt文件,使文件看起来像:

1 2 3
Run Code Online (Sandbox Code Playgroud)

如果我使用numpy.savetxt然后我得到一个文件,如:

1
2
3
Run Code Online (Sandbox Code Playgroud)

我想应该有一个简单的解决方案,任何建议?

Ava*_*ris 40

如果numpy >= 1.5,你可以这样做:

#注意文件名用双引号括起来,
#example"filename.txt"

numpy.savetxt("filename", a, newline=" ")
Run Code Online (Sandbox Code Playgroud)

编辑

几个长度相同的1D阵列

a = numpy.array([1,2,3])
b = numpy.array([4,5,6])
numpy.savetxt(filename, (a,b), fmt="%d")

# gives:
# 1 2 3
# 4 5 6
Run Code Online (Sandbox Code Playgroud)

几个可变长度的1D阵列

a = numpy.array([1,2,3])
b = numpy.array([4,5])

with open(filename,"w") as f:
    f.write("\n".join(" ".join(map(str, x)) for x in (a,b)))

# gives:
# 1 2 3
# 4 5
Run Code Online (Sandbox Code Playgroud)


Hoo*_*ked 16

另一个答案是重新整形数组,使其具有如下尺寸(1, N):

savetext(filename, a.reshape(1, a.shape[0]))
Run Code Online (Sandbox Code Playgroud)


Bio*_*eek 7

import numpy
a = numpy.array([1,2,3])

with open(r'test.txt', 'w') as f:
    f.write(" ".join(map(str, a)))
Run Code Online (Sandbox Code Playgroud)


ome*_*nda 6

我发现,对于仍需要换行符的情况,接受的答案中的第一个解决方案是有问题的。该问题最简单的解决方案是这样做:

numpy.savetxt(filename, [a], delimiter='\t')
Run Code Online (Sandbox Code Playgroud)