NumPy Python中的^运算符

wlzqhblo  于 2022-11-10  发布在  Python
关注(0)|答案(1)|浏览(401)

我不能理解带有布尔值的NumPy数组中的^运算符是什么。

print("----------train_mask before-------------------------------------------")
print (train_mask[10:30])
print(len(train_mask))
train_mask ^= eval_mask
print("----------eval -------------------------------------------")
print (eval_mask[10:30])
print(len(eval_mask))
print("----------train_mask -------------------------------------------")
print (train_mask[10:30])
print(len(train_mask))

输出为:

我无法理解如何将True值转换为False

mspsb9vt

mspsb9vt1#

正如其他人所说,^是Python中的按位XOR运算符。
请查看numpy.bitwise_xor的文档,其中部分内容如下:
按元素计算两个数组的按位异或。
这里的关键点是“element-wise,”,因此在您的示例中,由于eval_mask数组中只有一个True值,因此在输出中只更改了一个值。
它与(对于这些简单的一维阵列)相同:

>>> a = [True, True]
>>> b = [True, False]
>>> for i in range(len(a)):
...      a[i] ^= b[i]
... 
>>> a
[False, True]
>>> import numpy as np
>>> x = np.array([True, True])
>>> y = np.array([True, False])
>>> x ^ y
array([False,  True])

相关问题