numpy.searchsorted
-
numpy.searchsorted(a, v, side='left', sorter=None)
[source] -
Find indices where elements should be inserted to maintain order.
Find the indices into a sorted array
a
such that, if the corresponding elements inv
were inserted before the indices, the order ofa
would be preserved.Assuming that
a
is sorted:side
returned index i
satisfiesleft a[i-1] < v <= a[i]
right a[i-1] <= v < a[i]
Parameters: -
a : 1-D array_like
-
Input array. If
sorter
is None, then it must be sorted in ascending order, otherwisesorter
must be an array of indices that sort it. -
v : array_like
-
Values to insert into
a
. -
side : {‘left’, ‘right’}, optional
-
If ‘left’, the index of the first suitable location found is given. If ‘right’, return the last such index. If there is no suitable index, return either 0 or N (where N is the length of
a
). -
sorter : 1-D array_like, optional
-
Optional array of integer indices that sort array a into ascending order. They are typically the result of argsort.
New in version 1.7.0.
Returns: -
indices : array of ints
-
Array of insertion points with the same shape as
v
.
Notes
Binary search is used to find the required insertion points.
As of NumPy 1.4.0
searchsorted
works with real/complex arrays containingnan
values. The enhanced sort order is documented insort
.This function is a faster version of the builtin python
bisect.bisect_left
(side='left'
) andbisect.bisect_right
(side='right'
) functions, which is also vectorized in thev
argument.Examples
>>> np.searchsorted([1,2,3,4,5], 3) 2 >>> np.searchsorted([1,2,3,4,5], 3, side='right') 3 >>> np.searchsorted([1,2,3,4,5], [-10, 10, 2, 3]) array([0, 5, 1, 2])
-
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.15.4/reference/generated/numpy.searchsorted.html