NumPy 按位或() 函式



NumPy 的bitwise_or()函式對兩個陣列或一個數組和一個標量執行逐元素按位或運算。如果輸入運算元的對應位中至少有一個為 1,則輸出的每個位都設定為 1。

陣列必須具有相同的形狀或可以廣播到公共形狀。此函式通常用於需要位級操作的場景,例如影像處理或二進位制掩碼。

結果是一個新陣列,包含輸入陣列元素的按位或運算結果,其形狀和資料型別與輸入陣列相同。以下是 1 和 0 的位組合的按位或運算結果:

  • 0 和 0 的按位或:0
  • 0 和 1 的按位或:1
  • 1 和 0 的按位或:1
  • 1 和 1 的按位或:1

語法

以下是 NumPy bitwise_or() 函式的語法:

numpy.bitwise_or(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature])
  • x1, x2(類似陣列):用於計算這些陣列的逐元素按位或運算的輸入陣列。
  • out(可選):這是儲存結果的目錄。如果給出,則其形狀需要是輸入廣播到的形狀。如果沒有提供,則返回一個新分配的陣列。
  • where(可選):此條件對輸入進行廣播。ufunc 結果將在條件為 True 的位置設定為 out 陣列。如果不是,則將保留 out 陣列的初始值。
  • casting(可選):此引數確定允許的資料型別轉換。預設值為 'same_kind'
  • order(可選):控制結果的記憶體佈局順序。預設返回 'K'
  • dtype(可選):此引數覆蓋結果的 dtype。
  • subok(可選):如果為 True,則子類將被傳遞。如果為 False,則結果將是基類陣列。
  • signature(可選):此引數用於更高階的 ufunc 簽名支援。

返回值

此函式返回包含按位或運算結果的陣列。

示例 1

以下是 NumPy bitwise_or() 函式的基本示例,它顯示了兩個整數值的按位或運算:

import numpy as np

a, b = 13, 17
print('Binary equivalents of 13 and 17:')
print(bin(a), bin(b))

print('Bitwise OR of 13 and 17:')
print(np.bitwise_or(a, b))

其輸出如下:

Binary equivalents of 13 and 17:
0b1101 0b10001
Bitwise OR of 13 and 17:
29

示例 2

在此示例中,我們使用bitwise_or()函式對兩個陣列執行逐元素按位或運算:

import numpy as np

# Define two NumPy arrays
arr1 = np.array([10, 20, 30])
arr2 = np.array([1, 2, 3])

# Perform the bitwise OR operation
result = np.bitwise_or(arr1, arr2)

# Print the result
print("Array 1:", arr1)
print("Array 2:", arr2)
print("Bitwise OR result:", result)

以下是對兩個陣列執行按位或運算的結果:

Array 1: [10 20 30]
Array 2: [1 2 3]
Bitwise OR result: [11 22 31]

示例 3

NumPy 中的廣播允許透過將不同形狀的陣列對齊到公共形狀來對這些陣列進行逐元素運算。在此示例中,我們展示了按位或運算如何與廣播一起工作:

import numpy as np

# Define the arrays
a = np.array([1, 2, 4])        # Shape: (3,)
b = np.array([[5, 6, 7]])      # Shape: (1, 3)

# Perform bitwise OR with broadcasting
result = np.bitwise_or(a, b)

print("Array a:", a)
print("Array b:", b)
print("Bitwise OR result:\n", result)

以下是上述示例的輸出:

Array a: [1 2 4]
Array b: [[5 6 7]]
Bitwise OR result:
 [[5 6 7]]
numpy_binary_operators.htm
廣告