python - Testing if rows in a numpy array are the same as a given row or different by each element -


this related earlier question: elementwise logical comparison of numpy arrays

i have 2 numpy arrays of random integers

a=np.random.randint(q,size=(n,m)) b=np.random.randint(q,size=(1,m)) 

i need test if of rows in have more 0 , less m common elements elementwise b.

for example if

a=np.array([[2,0],[0,1],[1,2]]) b=np.array([1,0]) 

i expect true since [1,0] , [1,2] share more 0 , less 2 elements elemenwise.

on other hand if

b=np.array([2,0]) 

i expect false since there rows chare 2 or 0 elements elementwise

at moment approach is:

c=np.where((a[:]==b))[0] n=np.bincount(c) ((n==0)+(n==2)).all() 

to me seems convoluted way of testing , wondering if there more natural way i'm missing.

i this

neq=(a==b).sum(-1) result = any(logical_and(neq<b.size, neq>0)) 

where neq keeps track of how many digits each line of a has in common b.


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -