假设我有两个 numpy 数组,例如:
arr1 = np.array([[0,1],[0,2],[1,2],[2,3]])
和
arr2 = np.array([[0,1],[1,2]])
我现在想要的是一个函数,它将 的行arr1
与 的行进行比较arr2
并输出以下形状的列表
[True,False,True,False]
其中倒数第一名和倒数第二名是正确的,因为它们代表的一行arr1
也出现在arr2
.
然而,我尝试使用numpy.isin(arr1,arr2)
它给出一个形状数组,arr1
其中的元素与元素arr1
相比arr2
。
提前致谢。
您可以使用广播:
(arr1==arr2[:,None]).all(2).any(0)
输出:array([ True, False, True, False])
解释:
arr2[:,None]
all
最后一个维度上的值是否为真?(即,[0,1]==[0,1]
需要[True, True]
)any
这些聚合是真的吗?([0,1]==[0,1]
(True
)或[0,1]!=[0,2]
(False
)之一就足够了)本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句