2014-12-13 274 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} 

作为字典的文件名作为关键字。