访问不同类型的numpy数组中的列?

时间:2013-03-22 14:58:50

标签: python numpy

说我有以下数组:

a = array([(1L, 2.0, 'buckle_my_shoe'), (3L, 4.0, 'margery_door')], 
dtype=[('f0', '<i8'), ('f1', '<f8'), ('f2', 'S14')])

如何访问列?

我可以使用以下语法访问一行:

a[0][:]

但是当我尝试以相同的方式访问列时出现错误。

a[:][0]

请注意。这不是“How to access the ith column of a NumPy multidimensional array?”的欺骗,因为我使用的是不同类型的数组。

1 个答案:

答案 0 :(得分:2)

In [33]: a['f0']
Out[33]: array([1, 3], dtype=int64)

In [34]: a['f1']
Out[34]: array([ 2.,  4.])

In [35]: a['f2']
Out[35]: 
array(['buckle_my_shoe', 'margery_door'], 
      dtype='|S14')

此处,f0f1f2是数组dtype中的字段名称。

有关详细信息,请参阅Structured Arrays