numpy.where()
Функция np.where имеет две формы:
np.where(condition, x, y)— поэлементный выбор: где условие истинно, берётсяx, иначеy.np.where(condition)— возвращает кортеж индексов элементов, в которых условие истинно.
Сигнатура
numpy.where(condition, [x, y, ]/)
Параметры
condition— массив булевых значений (или выражение).x,y— массивы или скаляры для выбора (необязательны).
Возвращаемое значение
С тремя аргументами: массив, в котором
condition— это выбор междуxиy.С одним аргументом: кортеж индексов (по одному массиву на ось).
Примеры
Пример 1. Замена отрицательных нулями.
import numpy as np
a = np.array([-2, 3, -1, 5, 0, -7])
print(np.where(a < 0, 0, a))
[0 3 0 5 0 0]
Пример 2. Индексы элементов > порога.
adc = np.array([512, 800, 430, 720, 615])
idx = np.where(adc > 600)
print(idx)
print("Значения:", adc[idx])
(array([1, 3, 4]),)
Значения: [800 720 615]
Пример 3. Калибровка датчика: если > порога — 1, иначе 0.
line = np.array([900, 200, 850, 100, 950])
binary = np.where(line > 500, 1, 0)
print(binary)
[1 0 1 0 1]
Пример 4. Применить к 2D с broadcasting.
m = np.array([[1, -2, 3],
[-4, 5, -6]])
print(np.where(m > 0, m, 0))
[[1 0 3]
[0 5 0]]
Пример 5. Индексы в 2D массиве.
m = np.array([[10, 20, 30],
[40, 50, 60]])
rows, cols = np.where(m > 25)
print("Строки:", rows)
print("Столбцы:", cols)
Строки: [0 1 1 1]
Столбцы: [2 0 1 2]
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации NumPy (https://numpy.org/doc/stable/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.