检查在给定位置的numpy数组中的每个元素是否与另一个数组中相同位置的另一个元素匹配

时间:2017-10-28 01:29:30

标签: python numpy

给定两个数组,

a = ([1,2,3])
b = ([1,3, 2])

有没有一种优雅的方法来检查位置i中的任何元素是否匹配b中的位置i?

我知道循环很容易:

for i in range(len(a)):
    for j in range(len(b)):
        if a[i] == b[j]:
            print("There is a match")

但我对更优雅或更快的方法感兴趣。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您想使用numpy,它可以提供简洁,优雅且高效的方式:

import numpy as np

a = np.array([1, 2, 3, 4])
b = np.array([1, 3, 2, 4])
np.where(a==b)

输出是一个包含索引数组的元组,其中a的元素等于b的元素:

(array([0, 3]),)