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
廣告