![](/img/trans.png)
[英]Check if each element in a numpy array at its given position matches another element at the same position in a different array
[英]Testing if rows in a numpy array are the same as a given row or different by each element
这与我之前的问题有关: numpy数组的元素逻辑比较
我有两个随机整数的numpy数组
A=np.random.randint(Q,size=(N,M))
B=np.random.randint(Q,size=(1,M))
我需要测试A中的任何行在B元素方面是否具有大于0且小于M个公共元素。
例如,如果
A=np.array([[2,0],[0,1],[1,2]])
B=np.array([1,0])
我期望True
因为[1,0]
和[1,2]
在元素上共享大于0且小于2个元素。
另一方面,如果
B=np.array([2,0])
我会期望False
因为只有逐行将2或0个元素逐个删除
目前,我的方法是:
c=np.where((A[:]==B))[0]
n=np.bincount(c)
((n==0)+(n==2)).all()
对我来说,这似乎是一种复杂的测试方法,我想知道是否缺少一种更自然的方法。
我会这样
neq=(A==B).sum(-1)
result = any(logical_and(neq<B.size, neq>0))
其中neq
跟踪A
每一行与B
共有多少位数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.