is there a kind of "logical no" for numpy arrays (of numbers of course).
For example, consider this array:
x = [1,0,1,0,0,1]
i am looking for an easy way to compute its "inverse"
y = [0,1,0,1,1,0]
For an array of 1s and 0s you can simply subtract the values in x from 1:
x = np.array([1,0,1,0,0,1])
1-x
# array([0, 1, 0, 1, 1, 0])
Or you could also take the bitwise XOR of the binary values in x with 1:
x^1
# array([0, 1, 0, 1, 1, 0])
Here's one way:
y = (x == 0).astype(int)
Alternatively:
y = 0 + (x == 0)
Output:
[0 1 0 1 1 0]
Notes:
(x == 0) gives a boolean array where False appears in the place of 1, and True appears in the place of 0.astype(int), or adding scalar 0 to the matrix, converts False to 0 and True to 1