将多个数据文件读入多个数组python

时间:2014-07-02 21:46:25

标签: python arrays numpy

我是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],但我不知道原因。

在线等待。非常感谢!

2 个答案:

答案 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是整数。