我正在使用np.genfromtxt
从外部文件中读取混合类型的数据:
data = np.genfromtxt(filename, dtype='U10,U8,f,f,f,f,f,f')
如果我的数据类型是同类的,则可以通过执行column_two = data[:,2]
访问我的数据的第2列。但是,由于我使用的是结构化dtype,因此我不能简单地执行data[:,2]
,因为这会导致产生IndexError: too many indices for array
。有什么方法可以有效地选择data
的第n列以用于进一步处理?
答案 0 :(得分:1)
因此,问题在于结构化数据类型不支持列索引。我发现纠正该问题的方法以及感觉最为有机的方法是使用"Field Access",即。
data = np.genfromtxt(filename, dtype=[('date', str), ('time', str), ('az', np.float64), ...)
这样,为了访问“时间”列,我们可以简单地使用data['time']
。