2013-04-29 80 views
0

有人可以解釋一下嗎?savetxt只保存最後一個循環數據

import numpy 

a = ([1,2,3,45]) 
b = ([6,7,8,9,10]) 
numpy.savetxt('test.txt',(a,b)) 

該腳本可以很好的保存數據。但是當我通過循環運行它時,它可以打印所有內容,但不能保存所有內容。爲什麼?

import numpy 

a = ([1,2,3,4,5]) 
b = ([6,7,8,9,10]) 
for i,j in zip(a,b): 
    print i,j 
    numpy.savetxt('test.txt',(i,j)) 
+0

你實際上並沒有使用numpy數組。也許括號中的前綴是'numpy.array' – jamylak 2013-04-29 10:12:30

回答

4

您每次撥打numpy.savetext()時都會覆蓋以前的數據。

一個解決方案,使用臨時緩存陣列:

import numpy 

a = ([1,2,3,4,5]) 
b = ([6,7,8,9,10]) 

out = [] 

for i,j in zip(a,b): 
    print i,j 
    out.append((i,j)) 

numpy.savetxt('test.txt',out) 
2

numpy.savetxt將覆蓋先前寫入文件,所以你只能得到最後一次迭代的結果。

0

你應該append(I,J)而不是覆蓋以前的

0
import numpy as np 

a = np.array([1,2,3,4,5]) 
b = np.array([6,7,8,9,10]) 

np.savetxt('test.txt', np.column_stack((a, b))) 
0

更快的方式將是使用開放與

import numpy 

a = ([1,2,3,4,5]) 
b = ([6,7,8,9,10]) 

with open('test.txt','wb') as ftext: #Wb if you want to create a new one, 
    for i,j in zip(a,b):    #ab if you want to appen it. Her it's wb 
     print i,j 
     numpy.savetxt(ftext,(i,j)) 

這將是非常快的大陣

相關問題