Python 理解np.bitwise_和

Python 理解np.bitwise_和,python,numpy,bitwise-operators,Python,Numpy,Bitwise Operators,考虑以下示例代码: rand2 = np.random.rand(10) rand1 = np.random.rand(10) rand_bool = np.asarray([True, False, True, True, False, True, True, False, False, True], dtype=np.bool) a = np.bitwise_and(rand1 > .2, rand2 < .9, rand_bool) print(a) b = np.bitwis

考虑以下示例代码:

rand2 = np.random.rand(10)
rand1 = np.random.rand(10)
rand_bool = np.asarray([True, False, True, True, False, True, True, False, False, True], dtype=np.bool)
a = np.bitwise_and(rand1 > .2, rand2 < .9, rand_bool)
print(a)
b = np.bitwise_and(rand1 < .2, rand2 > .9, rand_bool)
print(a)
我不明白为什么给变量
b
分配另一个
按位\u和
会更改变量
a
。另外,测试
a是b
返回
True
。有人能向我解释一下这种行为吗?非常感谢

的第三个参数是可选的。它指定用于存储结果的输出数组。给定时,它也是
按位\u和
的返回值。您在
按位_和
的两个调用中都使用了相同的数组,
rand_bool
,因此它们都将结果写入该数组并返回该值

换句话说,您的代码相当于:

rand_bool[:] = np.bitwise_and(rand1 > .2, rand2 < .9)  # Put the result in rand_bool
a = rand_bool   # Assign a to rand_bool

rand_bool[:] = np.bitwise_and(rand1 > .2, rand2 < .9)  # Put the result in rand_bool
b = rand_bool   # Assign b to rand_bool
rand_bool[:]=np.bitwise_和(rand1>0.2,rand2<0.9)#将结果放入rand_bool
a=rand_bool#将a分配给rand_bool
rand_bool[:]=np.按位_和(rand1>0.2,rand2<0.9)#将结果放入rand_bool
b=随机布尔#将b分配给随机布尔
rand_bool[:] = np.bitwise_and(rand1 > .2, rand2 < .9)  # Put the result in rand_bool
a = rand_bool   # Assign a to rand_bool

rand_bool[:] = np.bitwise_and(rand1 > .2, rand2 < .9)  # Put the result in rand_bool
b = rand_bool   # Assign b to rand_bool