numpy
python
字段
好消息!
本教程作者所著新书《深入浅出Pandas:利用Python进行数据处理与分析》(ISBN:9787111685456)已由机械工业出版社出版上市,各大电商平台有售,欢迎:查看详情并关注购买。
说明
NumPy 教程 正在计划编写中,欢迎大家加微信 gairuo123 提供意见、建议、纠错、催更。
如果 ndarray 对象是结构化数组,则可以通过使用字符串索引数组来访问数组的字段,类似于字典。
索引 x['field-name']
会返回数组的新视图,它的形状与 x 相同(除非字段是子数组),但数据类型为 x.dtype['field-name']
并且只包含指定字段中的部分数据。 此外,记录数组(recarray)标量可以通过这种方式“索引”。
对结构化数组的索引也可以通过字段名称列表来完成,例如 x[['field-name1', 'field-name2']]
。 从 NumPy 1.16 开始,这将返回一个仅包含这些字段的视图。 在旧版本的 NumPy 中,它返回一个副本。
如果访问的字段是子数组,则子数组的维度将附加到结果的形状中。 例如:
x = np.zeros((2, 2), dtype=[('a', np.int32),
('b', np.float64, (3, 3))
])
x
'''
array([[(0, [[0., 0., 0.], [0., 0., 0.], [0., 0., 0.]]),
(0, [[0., 0., 0.], [0., 0., 0.], [0., 0., 0.]])],
[(0, [[0., 0., 0.], [0., 0., 0.], [0., 0., 0.]]),
(0, [[0., 0., 0.], [0., 0., 0.], [0., 0., 0.]])]],
dtype=[('a', '<i4'), ('b', '<f8', (3, 3))])
'''
x['a'].shape
# (2, 2)
x['a'].dtype
# dtype('int32')
x['b'].shape
# (2, 2, 3, 3)
x['b'].dtype
# dtype('float64')