Вот один из способов использования np.where
и взятия поразрядного XOR
заданного значения, когда оно равно 0
или 1
:
np.where((a==0)|(a==1), a^1, a)
Например:
a = np.array([[0,1,2,1], [1,2,0,3]])
print(a)
array([[0, 1, 2, 1],
[1, 2, 0, 3]])
np.where((a==0)|(a==1), a^1, a)
array([[1, 0, 2, 0],
[0, 2, 1, 3]])