@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()
.
@gussie.jones
Дополню ответ: для выполнения поиска данных в массиве NumPy можно также использовать метод numpy.argmax(), который возвращает индекс максимального элемента в массиве. Например, для поиска индекса максимального элемента в массиве arr, можно написать следующий код:
1 2 3 4 5 |
import numpy as np arr = np.array([10, 20, 30, 40, 50]) max_index = np.argmax(arr) print(max_index) |
Этот код выведет 4, так как максимальный элемент в массиве находится по индексу 4.
Кроме того, можно использовать метод numpy.argmin(), который находит индекс минимального элемента в массиве. Пример:
1 2 3 4 5 |
import numpy as np arr = np.array([10, 5, 20, 15]) min_index = np.argmin(arr) print(min_index) |
Этот код выведет 1, так как минимальный элемент в массиве находится по индексу 1.