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 in binary)
a = 5
# (0011 in binary)
b = 3
# (0001 in binary, which is 1 in decimal)
result = a & b  
print("The result obtained is:",result)  

以下是获得的输出:

The result obtained is: 1

按位或 (|) 运算

按位或运算比较两个数字的每一位。如果任一位是“1”,则结果为“1”;如果两个位都是“0”,则结果为“0”。

# (0101 in binary)
a = 5       
# (0011 in binary)
b = 3       
# (0111 in binary, which is 7 in decimal)
result = a | b  
print("The result obtained is:",result)  

这将产生以下结果:

The result obtained is: 7

按位非 (~) 运算

按位非运算反转数字的每一位,将“0”变为“1”,将“1”变为“0”。这也称为按位补码。

# (0101 in binary)
a = 5      
# (1010 in binary, which is -6 in decimal with two's complement)
result = ~a  
print("The result obtained is:",result)  

以下是上述代码的输出:

The result obtained is: -6

左移 (<<) 运算

左移运算将数字的位向左移动指定数量的位置。左侧移出的位将被丢弃,右侧移入 0。

# (0101 in binary)
a = 5    
# (1010 in binary, which is 10 in decimal)
result = a << 1  
print("The result obtained is:",result)  

获得的输出如下所示:

The result obtained is: 10

右移 (>>) 运算

右移运算将数字的位向右移动指定数量的位置。右侧移出的位将被丢弃,最左边的位将根据数字的符号填充(带符号整数的算术移位)。

# (0101 in binary)
a = 5    
# (0010 in binary, which is 2 in decimal)
result = a >> 1  
print("The result obtained is:",result)  

执行上述代码后,我们将得到以下输出:

The result obtained is: 2
广告