如何在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='')