gpt4 book ai didi

python - np.where 也检查多维数组中的子元素

转载 作者:行者123 更新时间:2023-12-04 02:29:54 25 4
gpt4 key购买 nike

我有两个具有相同第二维的多维数组。我想确保第一个数组的任何元素(即没有行)也是第二个数组的一行。

为此,我使用了 numpy.where,但它的行为也会检查同一位置的子元素。例如考虑这段代码:

x = np.array([[0,1,2,3], [4,0,6,9]])
z= np.array([[0,1,2,3], [5, 11, 6,98]])
for el in x:
print(np.where(z==el))

它打印:

(array([0, 0, 0, 0]), array([0, 1, 2, 3]))
(array([1]), array([2]))

第一个结果是由于第一个数组相等,第二个结果是因为 z[1]x[1] 都有 6 作为第三个元素。有没有办法告诉 np.where 只返回严格相等元素的索引,即上面示例中的 0

最佳答案

[i for i, e in enumerate(x) if (e == z).all(1).any()]

测试用例:

x = np.array([[0,1,2,3], [4,0,6,9], [4,0,6,19]])
z= np.array([[4,0,6,9], [0,1,2,3]])

[i for i, e in enumerate(x) if (e == z).all(1).any()]

输出:

[0, 1]

关于python - np.where 也检查多维数组中的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64890422/

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