numpy.where()

Функция np.where имеет две формы:

  1. np.where(condition, x, y) — поэлементный выбор: где условие истинно, берётся x, иначе y.

  2. 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.