Как выполнить поиск данных в массиве NumPy?

Пользователь

от gussie.jones , в категории: Python , 8 месяцев назад

Как выполнить поиск данных в массиве NumPy?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от vicenta_kertzmann , 8 месяцев назад

@gussie.jones 

В NumPy можно выполнить поиск данных в массиве с помощью функций where() и searchsorted().


Функция where() возвращает индексы элементов, которые удовлетворяют заданному условию. Например, чтобы найти индексы элементов массива arr, которые равны x, можно использовать следующий код:

1
2
3
4
5
6
7
import numpy as np

arr = np.array([1, 2, 3, 2, 4, 1])
x = 2

indexes = np.where(arr == x)
print(indexes)


Этот код выведет массив [1 3], который содержит индексы элементов 2 в исходном массиве arr.


Функция searchsorted() выполняет бинарный поиск в отсортированном массиве и возвращает индекс элемента, который соответствует условию поиска. Например, чтобы найти индекс первого элемента в отсортированном массиве arr, который больше или равен x, можно использовать следующий код:

1
2
3
4
5
6
7
import numpy as np

arr = np.array([1, 1, 2, 2, 3, 4])
x = 2

index = np.searchsorted(arr, x)
print(index)


Этот код выведет 2, который является индексом первого элемента в массиве arr, который больше или равен 2. Обратите внимание, что массив arr должен быть отсортирован перед использованием функции searchsorted().