Home > Software engineering >  Count number of items of an array exist in another array?
Count number of items of an array exist in another array?

Time:12-28

Suppose we have an array A and a set of arrays in B. What's the fast way to find how many items in A exist in each row of B? For example, if I have:

A = np.array([2, 5, 10])
B = np.array([(3, 5, 10), (1, 2, 5), (4, 6, 9)])

So I should get C = [2, 2, 0].

CodePudding user response:

You can also use broadcasting:

(B==A[:,None,None]).sum((0,2))

Output:

array([2, 2, 0])

CodePudding user response:

np.count_nonzero(np.isin(B, A), axis=1) might be a way of achieving the result you look for. Or, in a more elegant way - as of by suggestion of @mozway - np.isin(B, A).sum(axis=1).

  • Related