check for identical rows in different numpy arrays

• A+
Category：Languages

how do I get a row-wise comparison between two arrays, in the result of a row-wise true/false array?

Given datas:

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

Result step 1:

c = np.array([True, True,False,True])

Result final:

a = a[c]

So how do I get the array c ????

P.S.: In this example the arrays a and b are sorted, please give also information if in your solution it is important that the arrays are sorted

Here's a vectorised solution:

res = (a[:, None] == b).all(-1).any(-1)  print(res)  array([ True,  True, False,  True])

Note that a[:, None] == b compares each row of a with b element-wise. We then use all + any to deduce if there are any rows which are all True for each sub-array:

print(a[:, None] == b)  [[[ True  True]   [False  True]   [False False]]   [[False  True]   [ True  True]   [False False]]   [[False False]   [False False]   [False False]]   [[False False]   [False False]   [ True  True]]]