gpt4 book ai didi

python - 如何从结构化 numpy.array 访问多个字段?

转载 作者:行者123 更新时间:2023-12-01 05:10:48 25 4
gpt4 key购买 nike

我在访问多个字段(列)时遇到了困难

输入:

a = np.array([(1.0, 2,1),(3.0, 4,2),(9, 3,6)], dtype=[('x', float), ('y', float), ('z', float)])
a=np.reshape(a,(a.shape[0],-1))
a

输出:

array([[(1.0, 2.0, 1.0)],
[(3.0, 4.0, 2.0)],
[(9.0, 3.0, 6.0)]],
dtype=[('x', '<f8'), ('y', '<f8'), ('z', '<f8')])

如果我想访问第一列,我可以这样做:

在:a[:]['x']

输出:数组([[ 1.],
[3.],
[ 9.]])

但是,如果我想首先访问(例如)第三列,正确的语法是什么?类似的东西

in:a[:]['x':'z']

显然不行

最佳答案

使用字段名称列表作为数组的索引。结果是一个形状相同的数组,但记录中仅包含选定的字段(具有多个字段的数组元素称为记录)。

import numpy as np
a = np.array([(1.0, 2,1),(3.0, 4,2),(9, 3,6)], dtype=[('x', float), ('y', float), ('z', float)])
print(a)

print(a[['x', 'z']])

如果您选择的话,您可以对结果数组应用更高级别的索引,以仅选择所需的元素。

关于python - 如何从结构化 numpy.array 访问多个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24271828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com