写一个二维数组到一个文本文件

问题描述:

我有一个二维数组,我想将它写入一个文件,该阵列看起来差不多是这样:写一个二维数组到一个文本文件

>>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 
+1

你想['np.savetxt'(http://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt。 html) –

+0

@ali_m我试过np.savetxt,但它需要大约26秒,这是太大的时间 – Prince

+0

我想试试这个 'numpy np x = np.arange(20).reshape((4, 5)) np.savetxt('test.txt',x)' 但问题是我不知道如何安排和重塑我的数组 – Prince

你可以拆分你的数组分块并分别写入每个块。

像这样的东西应该让你开始:

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可能也使用一个列表) –