I wrote a function to solve this problem, which also handles multidimensional cases. (@ecatmur answer works fine in two dimensions, but doesn't work for 1D or 3D +)
import numpy as np def haselement(arr,subarr): '''Test if subarr is equal to one of the elements of arr. This is the equivalent of the "in" operator when using lists instead of arrays.''' arr = np.asarray(arr) subarr = np.asarray(subarr) if subarr.shape!=arr.shape[1:]: return False elif arr.ndim<2: return (subarr==arr).any() else: boolArr = (subarr==arr) boolArr.resize([arr.shape[0],np.prod(arr.shape[1:])]) return boolArr.all(axis=1).any() tableau = np.array(range(10), dtype = np.uint8) tableau.shape = (5,2) haselement(tableau,[0,1])
1D is handled by the if statement, and ND is handled by resizing the array to 2D for the @ecatmur algorithm to work. Other ways in which I decided to solve this problem include transitions or list loops (which can be actually more efficient, but only if the list is long and the element is close to the beginning); However, it seems more countless.
Here you can also find the function if you want to use it from the library:
https://github.com/davidmashburn/np_utils (obvious disclaimer, I'm the author;))
David source share