Поиск значения в массиве, находящемся в заданном списке
Создаю алгоритм распознавания людей через поиск на картинке пикселей телесного цвета. Использую для работы с изображениями NumPy, превратив изображение в матрицу. Для поиска использую np.where().
Что мне нужно вставить в np.where, чтобы он брал элементы находящиеся в заданном списке, что-то вроде a in [a,b,c] (это я пробовал, и np.any, np.all)?
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
Не совсем понятно, зачем вам вообще 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]