numpy.argwhere()
Функция numpy.argwhere() возвращает индексы ненулевых элементов массива в виде двумерного массива (N, ndim): каждая строка — координаты одного элемента. Это удобный способ преобразовать булеву маску в список координат.
Сигнатура
numpy.argwhere(a)
Параметры
a— входной массив (array_like). Часто это результат булева сравнения.
Возвращаемое значение
ndarray формы (N, a.ndim), где N — число ненулевых элементов.
Примеры
Пример 1. Индексы ненулевых элементов одномерного массива.
import numpy as np
arr = np.array([0, 3, 0, 7, 0, 9])
print(np.argwhere(arr))
[[1]
[3]
[5]]
Пример 2. Координаты элементов > порога.
m = np.array([[1, 5, 2], [7, 0, 9]])
print(np.argwhere(m > 4))
[[0 1]
[1 0]
[1 2]]
Пример 3. Координаты белых пикселей бинарного изображения.
img = np.array([[0, 1, 0],
[1, 1, 0],
[0, 0, 1]])
print(np.argwhere(img == 1))
[[0 1]
[1 0]
[1 1]
[2 2]]
Пример 4. Моменты, когда датчик пересекал порог.
signal = np.array([0.1, 0.4, 0.7, 0.2, 0.9, 0.5])
hits = np.argwhere(signal > 0.5).ravel()
print(hits)
[2 4]
Пример 5. Отличие от ``np.where``.
m = np.array([[0, 2], [3, 0]])
print("argwhere:\n", np.argwhere(m))
print("where:", np.where(m))
argwhere:
[[0 1]
[1 0]]
where: (array([0, 1]), array([1, 0]))
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации NumPy (https://numpy.org/doc/stable/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.