所以我试着读一些看起来像这样的数据(这只是第一行):
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]
提前致谢!
答案 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