说明
NumPy 教程 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
如果 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')
更新时间:June 10, 2022, 12:14 a.m. 标签:numpy python 字段