NumPy - 二元运算符
NumPy 中的二元运算符
NumPy 中的二元运算符是指接受两个操作数(通常是数组)并在数组的相应元素之间执行逐元素运算的运算。这些运算包括加法、减法、乘法、除法、逻辑运算等等。
例如,如果您有两个数组,则可以将它们相加、相减、相乘等等。这些操作都是逐元素执行的,这意味着操作应用于两个数组中每个对应的元素对。
以下是 NumPy 包中可用的按位运算函数。
序号 | 操作 &说明 |
---|---|
1 |
bitwise_and
计算数组元素的按位与运算 |
2 |
bitwise_or
计算数组元素的按位或运算 |
3 |
bitwise_xor
计算数组元素的按位异或运算。如果输入中对应位不同,则结果的每一位都为 1。 |
4 |
left_shift
将二进制表示的位向左移动 |
5 |
right_shift
将二进制表示的位向右移动 |
6 |
bitwise_right_shift
将整数的位向右移动。 |
7 |
invert
按位取非 |
8 |
bitwise_invert
按位取反元素。 |
9 |
packbits
将二进制数组的元素打包成位域表示形式。 |
10 |
unpackbits
将二进制数组的元素解包成位列表。 |
11 |
binary_repr
将整数转换为其二进制表示形式的字符串。 |
按位与 (&) 运算
按位与运算比较两个数字的每一位。如果两位均为 1,则结果为 1;否则为 0 -
#(二进制为 0101) a = 5 #(二进制为 0011) b = 3 #(二进制为 0001,十进制为 1) result = a & b print("结果为:",result)
以下是输出结果 -
结果为:1
按位或 (|) 运算
按位或运算比较两个数字的每一位。如果其中一位为"1",则结果为"1";如果两位均为"0",则结果为"0"。−
#(二进制为 0101) a = 5 #(二进制为 0011) b = 3 #(二进制为 0111,十进制为 7) result = a | b print("结果为:",result)
结果如下 −
结果为:7
按位非 (~) 运算
按位非运算将数字的每一位取反,将"0"变为"1",将"1"变为"0"。这也称为按位补码 -
#(二进制为 0101) a = 5 #(二进制为 1010,用二进制补码表示为十进制的 -6) result = ~a print("结果为:",result)
以下是上述代码的输出 -
结果为:-6
左移 (<<) 运算
左移运算将数字的位向左移动指定的位数。左侧移出的位被丢弃,右侧移入 0 -
#(二进制为 0101) a = 5 #(二进制为 1010,十进制为 10) result = a << 1 print("结果为:",result)
输出如下所示 -
结果为:10
右移 (>>) 操作
右移操作将数字的位向右移动指定的位数。右侧移出的位将被丢弃,最左边的位将根据数字的符号进行填充(有符号整数的算术移位)-
#(二进制为 0101) a = 5 #(二进制为 0010,十进制为 2) result = a >>> 1 print("结果为:",result)
执行上述代码后,我们得到以下输出 -
结果为:2