Issue
I am considering arrays of shape (n,2) for arbitrary n. I want to check whether the two-element sub-arrays match. As an example:
import numpy as np
a=np.array([[1,0],[2,0]])
b=np.array([[1,0],[2,0]])
c=np.array([[3,0],[4,0]])
d=np.array([[1,0],[5,0]])
if (b == a).any() == True:
print('y')
if (c == a).any() == True:
print('y1')
if (d == a).any() == True:
print('y2')
In this code I would the first and third conditions to be evaluated as True. As the written all statements return True as the code compares the arrays elementwise.
Is there a simple way to complete this without having to loop through each array and directly compare?
Solution
(c == a).all(axis=1).any()
checks first on axis 1 whether all elements are the same, before checking whether this is true for any of the sub-arrays.
This only works if you want to compare sub-arrays with the same first index, i.e. a[0] with b[0] or a[1] with b[1], but not a[0] with b[1].
Answered By - Matthias Huschle
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.