Я думаю, что причина, по которой «in (12, 1, 2)» не работает, состоит в том, что элемент перед «in» должен быть одним элементом.
Но для этого у numpy есть функция in1d
( документация ), чтобы сделать 'in' с массивом numpy.С вашим кодом:
np.where(np.in1d(foo[:,0], [12, 1, 2]), False, True)
Чтобы завершить ответ комментарием: в этом случае использование where
является избыточным, вывод in1d
может использоваться для индексации foo:
foo[np.in1d(foo[:,0], [12, 1, 2])]
или для
foo[~np.in1d(foo[:,0], [12, 1, 2])]
Примечание: in1d
доступно только для numpy 1.4 или выше.