gpt4 book ai didi

python - 使用 numpy.argwhere 获取 np.array 中的匹配值

转载 作者:太空狗 更新时间:2023-10-30 00:34:24 26 4
gpt4 key购买 nike

我想使用 np.argwhere() 获取 np.array 中的值。

例如:

z = np.arange(9).reshape(3,3)

[[0 1 2]
[3 4 5]
[6 7 8]]

zi = np.argwhere(z % 3 == 0)

[[0 0]
[1 0]
[2 0]]

我想要这个数组:[0, 3, 6] 并这样做:

t = [z[tuple(i)] for i in zi] # -> [0, 3, 6]

我想有更简单的方法。

最佳答案

为什么不在这里简单地使用掩码:

z<b>[z % 3 == 0]</b>

对于您的示例矩阵,这将生成:

>>> z[z % 3 == 0]
array([0, 3, 6])

如果您传递一个维度与 bool 值相同的矩阵作为索引,您将得到一个包含该矩阵元素的数组,其中 bool 矩阵为 True

这将进一步提高工作效率,因为您在 numpy 级别进行过滤(而列表理解在 Python 解释器级别工作)。

关于python - 使用 numpy.argwhere 获取 np.array 中的匹配值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45255167/

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