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]- Parameters:
-
- a1-D array_like
-
Вводной массив. Если
sorterравно None, то он должен быть отсортирован по возрастанию, в противном случаеsorterдолжен быть массивом индексов, которые его сортируют. - varray_like
-
Значения для вставки в
a. - side{‘left’, ‘right’}, optional
-
Если ‘left’, возвращается индекс первого подходящего местоположения. Если ‘right’, возвращается последний такой индекс. Если подходящего индекса нет, возвращается либо 0, либо N (где N — длина
a). - sorter1-D array_like, optional
-
Необязательный массив целочисленных индексов, сортирующий массив a по возрастанию. Обычно это результат argsort.
New in version 1.7.0.
- Returns:
-
- indicesint or array of ints
-
Массив точек вставки с той же формой, что и
v, или целое число, еслиv— скаляр.
См. также
Notes
Используется бинарный поиск для нахождения необходимых точек вставки.
Начиная с NumPy 1.4.0
searchsortedработает с вещественными/комплексными массивами, содержащими значенияnan. Улучшенный порядок сортировки описан вsort.Эта функция использует тот же алгоритм, что и встроенные питоновские
bisect.bisect_left(side='left') иbisect.bisect_right(side='right') функции, которые также векторизированы в аргументеv.Примеры
>>> np.searchsorted([11,12,13,14,15], 13) 2 >>> np.searchsorted([11,12,13,14,15], 13, side='right') 3 >>> np.searchsorted([11,12,13,14,15], [-10, 20, 12, 13]) array([0, 5, 1, 2])
© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.searchsorted.html