如何在python中将数组附加到文本文件

如何在python中将数组附加到文本文件,python,numpy,file-writing,Python,Numpy,File Writing,我试图创建一个以几行作为标题的文件,并附加一列数字。我在标题后添加numpy.matrix时遇到一些问题。我编写了如下代码 但是,突出显示的数字应该是2,而不是0。我还附上了我原始excel文件的截图 注意,如果您允许,它将为您的文件附加一个头字符串。例如: import numpy as np # Recreate the original csv data one_block = np.ones((10,10)) A = np.block([ [0*one_block,one_block

我试图创建一个以几行作为标题的文件,并附加一列数字。我在标题后添加
numpy.matrix
时遇到一些问题。我编写了如下代码

但是,突出显示的数字应该是2,而不是0。我还附上了我原始excel文件的截图

注意,如果您允许,它将为您的文件附加一个头字符串。例如:

import numpy as np
# Recreate the original csv data
one_block = np.ones((10,10))
A   = np.block([ [0*one_block,one_block],[2*one_block,3*one_block] ])
M,N = A.shape
# Recreate b
a   = np.flip(A,0)
b   = a.reshape(400,1)
hdr_str = """{M:d} {N:d} 1
1
facies""".format(M=M,N=N)
outfile = 'Region.txt'
np.savetxt(outfile,b,header=hdr_str,comments='')

下面是我试图重现你的问题的截图。没有虚假的
0


为什么不使用np.savetxt()?他做了,在最后一行什么是
b[:10]
-即
b
的第一部分?你真的不应该使用
numpy.matrix
对象,坚持使用普通的多维数组。我假设因为问题是关于附加,你首先需要一个txt文件,然后在后面附加一个np数组…问题是数组的开头有一个奇怪的0,但它应该是2。我还注意到,如果我输入np.savetxt(outfile,b,fmt='%0.4f'),我会丢失一些数据。我的b向量应该以2开头。我附上了我原始excel文件的截图。请看一看。我想问题可能与“with open”命令有关。不过,谢谢你的帮助。
f = open('Region.txt', 'w')
f.write('first line \n')
f.write('second line \n')
f.close()

with open('Region.txt', 'a+') as outfile:
    np.savetxt(outfile,np.random.rand(10,3)) 
import numpy as np
# Recreate the original csv data
one_block = np.ones((10,10))
A   = np.block([ [0*one_block,one_block],[2*one_block,3*one_block] ])
M,N = A.shape
# Recreate b
a   = np.flip(A,0)
b   = a.reshape(400,1)
hdr_str = """{M:d} {N:d} 1
1
facies""".format(M=M,N=N)
outfile = 'Region.txt'
np.savetxt(outfile,b,header=hdr_str,comments='')