写一个二维数组到一个文本文件
问题描述:
我有一个二维数组,我想将它写入一个文件,该阵列看起来差不多是这样:写一个二维数组到一个文本文件
>>print (arr)
[0 0 20
0 5 520
2 0 720
....
8 -20 150
0 10 10]
当我试图把它写入一个文件时,它保存为最后的输出,我这里使用的是什么:
ff = open('output.txt', 'w')
ff.write(arr)
这是导致文件
[0 0 20
0 5 520
2 0 720
....
8 -20 150
0 10 10]
我看到的一个解决方案本网站 但我仍然有一个问题其他问题,
np.ndarray.tofile(arr,"output.txt",'\n','%s')
文件中的输出是这样的:
0 0 20 0 50 ...
,并以此类推,直到数组结束
我想输出看起来像这样:
0 0 20
0 5 520
2 0 720
.
.
.
8 -20 150
0 10 10
答
你可以拆分你的数组分块并分别写入每个块。
像这样的东西应该让你开始:
myarr = [1,10,100,2,20,200,3,30,300,4,40]
def split_to_chunks(myarray, e):
return (myarray[i:i+e] for i in xrange(0, len(myarray), e))
for i in split_to_chunks(myarr, 3):
# etc
+0
这是一个列表,而不是一个numpy数组(尽管我可以告诉OP可能也使用一个列表) –
你想['np.savetxt'(http://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt。 html) –
@ali_m我试过np.savetxt,但它需要大约26秒,这是太大的时间 – Prince
我想试试这个 'numpy np x = np.arange(20).reshape((4, 5)) np.savetxt('test.txt',x)' 但问题是我不知道如何安排和重塑我的数组 – Prince