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]- Параметры
-
- a1-D массив_типа
-
Входной массив. Если
sorterравно None, то он должен быть отсортирован по возрастанию, иначеsorterдолжен быть массивом индексов, которые его сортируют. - vмассив_типа
-
Значения, которые нужно вставить в
a. - side{‘left’, ‘right’}, необязательно
-
Если ‘left’, возвращается индекс первого подходящего местоположения. Если ‘right’, возвращается последний такой индекс. Если подходящего индекса нет, возвращается либо 0, либо N (где N — длина
a). - sorter1-D массив_типа, необязательно
-
Необязательный массив целочисленных индексов, сортирующих массив a по возрастанию. Они обычно являются результатом argsort.
Введено в версии 1.7.0.
- Возвращает
-
- indicesмассив целых чисел
-
Массив точек вставки той же формы, что и
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–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.searchsorted.html