我是Python的新手,我在处理多个数据文件时遇到了问题。 我想将多个数据文件读入多个数组,例如,我想将1c.txt中的数据读取到数组c1,将数据读入2c.txt到c2等等。我尝试了以下代码:
import numpy as np
for i in range(1,15):
globals()['c%s' % i] = np.loadtxt(['%sc.txt' % i], usecols=(0,1,2))
但是IndexError: list index out of range
提示,我将usecols=(0,1,2)
更改为usecols=(0)
它仍然无法正常工作,所以我认为其他一些事情必定是错误的。
此外,我发现我无法使用以下代码:
['c%s' % i]
将变量名称设为c1,c2等。我必须在globals()
之前添加['c%s' % i]
,但我不知道原因。
在线等待。非常感谢!
答案 0 :(得分:2)
您应该使用Python dict来保存到数组的映射:
import numpy as np
dict_of_arrays={}
for i in range(1,15):
dict_of_arrays['c%i' % i]=np.array([1,2,3])
print dict_of_arrays
打印:
{'c11': array([1, 2, 3]), 'c13': array([1, 2, 3]), 'c9': array([1, 2, 3]), 'c8': array([1, 2, 3]), 'c14': array([1, 2, 3]), 'c12': array([1, 2, 3]), 'c3': array([1, 2, 3]), 'c2': array([1, 2, 3]), 'c1': array([1, 2, 3]), 'c10': array([1, 2, 3]), 'c7': array([1, 2, 3]), 'c6': array([1, 2, 3]), 'c5': array([1, 2, 3]), 'c4': array([1, 2, 3])}
然后访问单个数组:dict_of_arrays['c11']
以访问文件c11中的数据作为示例。
答案 1 :(得分:0)
好吧,我至少可以回答其中一些问题。
我发现我无法将代码用作:[' c%s' %i] = np.loadtxt(['%sc.txt'%i]
这是因为['c%i' % i]
会给你一个字符串列表,而不是变量。通过执行globals()[string]
您正在访问(分配)字典(globals()字典)。我高度推荐 NOT 使用globals()!
做类似的事情:
mydict = {}
for i in range(1,15):
mydict['c%i' % i] = np.loadtxt('c%i.txt' % i, usecols=(0,1,2))
我还注意到您使用的是%s
,您应该在格式中使用%i
,%s用于字符串,但变量i
是整数。