numPy-从结构化dtype中选择列

时间:2019-03-14 01:23:42

标签: python-3.x numpy

我正在使用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列以用于进一步处理?

1 个答案:

答案 0 :(得分:1)

因此,问题在于结构化数据类型不支持列索引。我发现纠正该问题的方法以及感觉最为有机的方法是使用"Field Access",即。

data = np.genfromtxt(filename, dtype=[('date', str), ('time', str), ('az', np.float64), ...)

这样,为了访问“时间”列,我们可以简单地使用data['time']