【发布时间】:2016-04-09 00:28:39
【问题描述】:
所以我试图读取一些看起来像这样的数据(这只是第一行):
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]
提前致谢!
【问题讨论】:
-
你的数据不是方表,有相当多的结构。我认为您应该编写自己的导入。使用纯 Python
readlines并根据只有您了解的结构将每一行分开。可以使用多个分隔符并仍然使用numpy导入器,但它不会很优雅。 -
那些
()会给genfromtxt带来问题。它专为只有字段和分隔符的行而设计,没有引号或其他括号。但它会接受来自您自己的线路阅读器的输入(任何提供线路的东西)。所以你可以过滤掉(),用常规分隔符替换它们。
标签: python numpy genfromtxt