Numpy bitwise_or() 函数
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[,签名])
- x1, x2(类似数组):这些数组用作输入,用于计算这些数组的元素按位或。
- out(可选):这是保存结果的目录。它需要具有输入广播到的形状(如果指定)。如果未提供,则返回一个新分配的数组。
- where(可选):通过此条件在输入上进行广播。当条件为 True 时,ufunc 结果将被设置为
out
数组中的值。如果不是,则将保留out
数组的初始值。 - casting(可选):此参数确定允许的数据转换类型。
'same_kind'
为默认值。 - order(可选): 调节结果的内存布局顺序。默认返回
'K'
。 - dtype(可选): 此参数覆盖结果的 dtype。
- subok(可选): 如果为 True,则将传递子类。如果为 False,则结果将为基类数组。
- 签名(可选):此参数用于更高级的 ufunc 签名支持。
返回值
此函数返回执行按位或运算后的结果数组。
示例 1
以下是 Numpy bitwise_or() 函数的基本示例,其中展示了两个整数值的按位或运算 -
import numpy as np a, b = 13, 17 print('13 和 17 的二进制等价值:') print(bin(a), bin(b)) print('13 和 17 的按位或运算17:') print(np.bitwise_or(a, b))
其输出如下 −
13 和 17 的二进制等价值: 0b1101 0b10001 13 和 17 的位或运算: 29
示例 2
在此示例中,我们使用 bitwise_or() 函数对两个数组进行逐元素位或运算 −
import numpy as np # 定义两个 NumPy 数组 arr1 = np.array([10, 20, 30]) arr2 = np.array([1, 2, 3]) # 执行按位或运算 result = np.bitwise_or(arr1, arr2) # 打印结果 print("数组 1:", arr1) print("数组 2:", arr2) print("按位或结果:", result)
以下是对两个数组执行按位或运算的输出 -
数组 1: [10 20 30] 数组 2: [1 2 3] 按位或结果: [11 22 31]
示例 3
广播NumPy 通过将不同形状的数组对齐为一个共同的形状,允许对它们进行元素级操作。在此示例中,我们展示了位或运算如何与广播配合使用 -
import numpy as np # 定义数组 a = np.array([1, 2, 4]) # 形状:(3,) b = np.array([[5, 6, 7]]) # 形状:(1, 3) # 使用广播执行位或 result = np.bitwise_or(a, b) print("数组 a:", a) print("数组 b:", b) print("位或结果: ", result)
以下是上述示例的输出 -
数组 a: [1 2 4] 数组 b: [[5 6 7]] 位或结果: [[5 6 7]]