2013-05-21 83 views
2

使用numpy的,我使用的要拆尺寸(557124,2)dtype = "S10"的陣列,在6子陣到6個.txt文件。numpy的savetxt環

我想:

for i in sub_array: 
    np.savetxt(("Subarray", i, ".txt"), sub_array[i], fmt='%s') 

有2個問題:

  1. 這是不正確的說in sub_array。我應該使用range(5),但我想讓它適用於任何數量的子陣列。

  2. 我以爲我可以使用某種「粘貼」,如在R中,當我做("Subarray", i, ".txt")。 Numpy有什麼相似之處?

任何想法?

回答

3

從我所瞭解

sub_arr = np.split(arr, 6) 

返回6個numpy的陣列的列表。然後你可以使用枚舉讓每個陣列及其指數

fname_template = "Subarray.{i}.txt" 
for i, sarr in enumerate(sub_arr): 
    np.savetxt(fname_template.format(i=i), sarr, fmt='%s') 

要創建我用過的new string formatting的文件名。否則,您可以使用+作爲"Subarray."+str(i)+".txt"來連接字符串,但是您必須確保所連接的所有元素都是字符串。

+0

謝謝!我不知道「枚舉」命令 – Alice

+1

如果你不熟悉迭代器,你也可以看看['zip'](http://docs.python.org/2/library/functions.html#zip )和['itertools'](http://docs.python.org/2/library/itertools.html) –

+0

你知道我可以做相反的事情來讀取循環中的文件嗎?例如。 file.1,file.2 ... file.23,並將它們全部保存在內存中而不創建3D數組?謝謝! – Alice