gpt4 book ai didi

python - Numpy:搜索第一个匹配行

转载 作者:太空狗 更新时间:2023-10-30 02:58:42 25 4
gpt4 key购买 nike

如果我有这样一个 numpy 数组:

import numpy as np
x = np.array([[0,1],[0,2],[1,1],[0,2]])

如何返回匹配 [0,2] 的第一行的索引?

对于列表,使用 index 很容易:

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

l.index([0,2])
> 1

我知道numpy具有函数 numpy.where ,但我不太确定如何处理 numpy.where 的输出:

np.where(x==[0,2])
> (array([0, 1, 1, 3, 3]), array([0, 0, 1, 0, 1]))

还有 numpy.argmax ,但这也没有返回我要找的东西,这只是索引 1

np.argmax(x == [0,2], axis = 1)

最佳答案

如果搜索列表是[0,2],你会带入broadcastingx 比较时,给我们一个与 x 形状相同的掩码。由于您要查找完全匹配项,因此您会查找所有 TRUE 值都带有 .all(1) 的行.最后,你想要第一个索引,所以使用 np.wherenp.nonzero并选择第一个元素。作为示例运行的实现将是 -

In [132]: x
Out[132]:
array([[0, 1],
[0, 2],
[1, 1],
[0, 2]])

In [133]: search_list = [0,2]

In [134]: np.where((x == search_list).all(1))[0][0]
Out[134]: 1

In [135]: np.nonzero((x == search_list).all(1))[0][0]
Out[135]: 1

关于python - Numpy:搜索第一个匹配行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33351160/

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