numpy.searchsorted
-
numpy.searchsorted(a, v, side='left', sorter=None)[source] -
Найти индексы, куда следует вставить элементы для сохранения порядка.
Найти индексы в отсортированном массиве
aтаком, что, если соответствующие элементы вvбыли вставлены перед индексами, порядокaсохранялся бы.Предполагая, что
aотсортирован:sideвозвращаемый индекс iудовлетворяетleft a[i-1] < v <= a[i]right a[i-1] <= v < a[i]Параметры: -
a : 1-D array_like -
Входной массив. Если
sorterравно None, то он должен быть отсортирован в порядке возрастания, в противном случаеsorterдолжен быть массивом индексов, которые его сортируют. -
v : array_like -
Значения для вставки в
a. -
side : {‘left’, ‘right’}, optional -
Если ‘left’, возвращается индекс первой подходящей позиции. Если ‘right’, возвращается последний такой индекс. Если подходящего индекса нет, возвращается либо 0, либо N (где N — длина
a). -
sorter : 1-D array_like, optional -
Необязательный массив целочисленных индексов, которые сортируют массив a по возрастанию. Обычно они являются результатом argsort.
Новое в версии 1.7.0.
Возвращаемое значение: -
indices : array of ints -
Массив точек вставки с такой же формой, что и
v.
См. также
Примечания
Используется бинарный поиск для нахождения необходимых точек вставки.
Начиная с NumPy 1.4.0
searchsortedработает с вещественными/комплексными массивами, содержащими значенияnan. Улучшенный порядок сортировки описан вsort.Эта функция — более быстрая версия встроенных функций Python
bisect.bisect_left(side='left') иbisect.bisect_right(side='right'), которая также векторизована в аргументеv.Примеры
>>> 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