Поиск значения в массиве, находящемся в заданном списке

Рейтинг: 0Ответов: 1Опубликовано: 24.04.2023

Создаю алгоритм распознавания людей через поиск на картинке пикселей телесного цвета. Использую для работы с изображениями NumPy, превратив изображение в матрицу. Для поиска использую np.where().

Что мне нужно вставить в np.where, чтобы он брал элементы находящиеся в заданном списке, что-то вроде a in [a,b,c] (это я пробовал, и np.any, np.all)?

Ответы

▲ 2Принят

Не совсем понятно, зачем вам вообще np.where. Вы можете просто выбрать значения по маске:

import numpy as np

a = np.array([1,2,3,4,5,6,7,8,7,1,1,3,4,5,3,1])
l = [1,3,7]
b = a[np.isin(a, l)]
print(b)

[1 3 7 7 1 1 3 3 1]

Либо, если вам нужно действительно что-то делать с исходным массивом:

a = np.array([1,2,3,4,5,6,7,8,7,1,1,3,4,5,3,1])
l = [1,3,7]
res = np.where(np.isin(a, l), a+100, a-100)
print(res)

[101 -98 103 -96 -95 -94 107 -92 107 101 101 103 -96 -95 103 101]