Найти, где массив NumPy равен любому значению в списке значений
У меня есть массив целых чисел и хочу найти, где этот массив равен любому значению в списке из нескольких значений.
Это легко сделать, обрабатывая каждое значение по отдельности или используя несколько операторов "или" в цикле, но я чувствую, что должен быть лучший / более быстрый способ сделать это. Я на самом деле имею дело с массивами размера4000 x 2000
, но вот упрощенная редакция проблемы:
fake = arange(9).reshape((3,3))
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
want = (fake==0) + (fake==2) + (fake==6) + (fake==8)
print want
array([[ True, False, True],
[False, False, False],
[ True, False, True]], dtype=bool)
То, что я хотел бы, это способ получитьwant
из одной команды с участиемfake
и список значений[0, 2, 6, 8]
.
Я предполагаю, что есть пакет с уже включенным в него пакетом, который будет значительно быстрее, чем если бы я просто написал функцию с циклом в Python.