我想知道是否有一种很好且优雅的方法来在两个数组之间进行逐元素比较。
arr1 = [[1, 2],
[3, 4],
[5, 6]]
àrr2 = [3,
5,
6]
result = arr2 in arr1
现在我想要一个像这样的结果:
[False, False, True]
提前非常感谢!
编辑:抱歉,我的示例有点误导。我希望按元素执行此操作,这意味着我想检查 arr2[0] 是否在 arr1[0] 中,arr2[1] 是否在 arr2[1] 中,依此类推。我更新了示例
而且真正的数组要大得多,所以我想在没有循环的情况下完成
最佳答案
您可以使用operator.contains
:
>>> arr1 = [[1, 2], [4, 5], [7, 8]]
>>> arr2 = [3, 4, 7]
>>> list(map(contains, arr1, arr2)
[False, True, True]
或者对于numpy
使用np.isin
>>> arr1 = np.array([[1, 2], [4, 5], [7, 8]])
>>> arr2 = np.array([3, 4, 7])
>>> np.isin(arr2, arr1).any(1)
[False True True]
关于python - 两个数组之间的逐元素内运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58919800/