使用np.genfromtxt读入包含数组的数据

时间:2016-04-09 00:28:40

标签: python numpy genfromtxt

所以我试着读一些看起来像这样的数据(这只是第一行):

1 14.4132966509 (-1.2936631396696465, 0.0077236319580324952,   0.066687939649724415) (-13.170491147387787, 0.0051387952329040587, 0.0527163312916894)

我尝试使用np.genfromtxt读取它:

skirt_data = np.genfromtxt('skirt_data.dat', names = ['halo', 'IRX', 'beta', 'intercept'], delimiter = ' ', dtype = None)

但是它回复了这个:

ValueError: size of tuple must match number of fields.

我的问题是,我究竟如何加载数据中的数组,以便我可以拉出该数组中的第一个数字?最后,我想做这样的事情来查看beta列的第一个值:

skirt_data['beta'][1]

提前致谢!

1 个答案:

答案 0 :(得分:1)

如果每一行都相同,我会使用自定义解析器。

您可以使用str.split(sep,可选的最大拆分)

拆分该行

这就像

那样
names = [list from above]
output = {}
with open('skirt_data.dat') as sfd:
    for i, line in enumerate(sfd.readlines()):
        skirt_name = names[i]
        first_col, second_col, rest = line.split(' ', 2)
        output[skirt_name] = int(first_col)
print output