Find Multiple Values Within A Numpy Array
I am looking for a numpy function to find the indices at which certain values are found within a vector (xs). The values are given in another array (ys). The returned indices must
Solution 1:
For big arrays xs
and ys
, you would need to change the basic approach for this to become fast. If you are fine with sorting xs
, then an easy option is to use numpy.searchsorted()
:
xs.sort()
ndx = numpy.searchsorted(xs, ys)
If it is important to keep the original order of xs
, you can use this approach, too, but you need to remember the original indices:
orig_indices = xs.argsort()
ndx = orig_indices[numpy.searchsorted(xs[orig_indices], ys)]
Solution 2:
In this kind of cases, just easily use np.isin()
function to mask those elements conform your conditions, like this:
xs = np.asarray([45, 67, 32, 52, 94, 64, 21])
ys = np.asarray([67, 94])
mask=xs[np.isin(xs,xy)]
print(xs[mask])
Post a Comment for "Find Multiple Values Within A Numpy Array"