2014-12-13 150 views
1

我希望能夠基於可能發生變化的數字創建numpy數組。
例如,假設我有50個文本文件,其中包含一組2x2數字在for循環中創建numpy數組

我想將這50個文件裝載爲numpy數組,並在代碼中稍後使用它們。代碼示例可能如下所示:

import load numpy as np 
num = 50 #this could change based on different conditions 

for i in arange(num): 
    data%d % i = np.loadtxt("datafromafile%d.txt" % i) 

這是這樣的可能嗎? 感謝

+0

這些文件中的數組是否都具有相同的形狀(2x2)或它們可以不同? – 2014-12-13 18:12:18

回答

3

您可以將它們存儲在一個列表:

data = list() 
for i in arange(num): 
    data.append(np.loadtxt("datafromafile%d.txt" % i)) 

然後你就可以訪問每個陣列:

>>> data[0] + data[1] # sum of the first and second numpy array 
+0

elyase,謝謝,自您提交以來,我已經多次使用過您的修復程序。對不起,花了這麼長時間讓你知道你是多麼有幫助。 – getaglow 2015-01-07 01:57:11

+0

我很高興它有幫助! – elyase 2015-01-07 02:03:42

1

作爲oneliner這將是:

NUM = 50 
data = [np.loadtxt("datafromafile%d.txt" % value) for value in np.arange(NUM)] 

FILES = ['file1', 'file2', 'file3'] 
data = {key: np.loadtxt(key) for key in FILES} 

作爲字典的文件名作爲關鍵字。