我有一個非常長的一維numpy數組。我想高效地將它寫入文件,在文件中每行放置N個空格分隔的值。我嘗試了幾種方法,但都有很大的問題。如何從numpy數組中有效地輸出每行n項
首先,我嘗試將數組重新整形爲N列寬。給定一個文件句柄,f:
myArray.reshape(-1, N)
for row in myArray:
print >> f, " ".join(str(val) for val in row)
這很有效,但要求數組有N個元素的倍數。如果最後一行只包含1個元素(而N大於1),我只想打印1個元素......不會崩潰。
接下來,我試圖用一個計數器進行打印,和每一個第N個元素之後插入一個換行符:
i = 1
for val in myArray:
if i < N:
print >> f, str(val)+" ",
i+=1
else:
print >> f, str(val)
i = 1
這工作得很好任何長度的數組,但極其緩慢(服用比我長至少10倍第一選項)。我從許多數組中輸出很多文件,並且由於速度而無法使用此方法。
任何有效的方法來做這個輸出的想法?