有没有一种numpy数组的“逻辑否定”(当然是针对数字的)。
例如,考虑这个数组:
例如,考虑这个数组:
x = [1,0,1,0,0,1]
我正在寻找一种简单的方法来计算它的“反转”
y = [0,1,0,1,1,0]
对于由1s
和0s
组成的数组,您可以简单地将x
中的值从1
中减去:
x = np.array([1,0,1,0,0,1])
1-x
# array([0, 1, 0, 1, 1, 0])
x^1
# array([0, 1, 0, 1, 1, 0])
是的,你可以使用 np.logical_not
:
np.logical_not(x).astype(int)
输出:
array([0, 1, 0, 1, 1, 0])
或者使用异或(XOR):
y = [n ^ 1 for n in x]
可以这样做:
y = (x == 0).astype(int)
y = 0 + (x == 0)
输出:
[0 1 0 1 1 0]
(x == 0)
返回一个布尔数组,其中1
的位置出现False
,0
的位置出现True
。
2. 调用方法astype(int)
或将标量0
添加到矩阵中,将False
转换为0
,将True
转换为1
。