Numpy invert() 函数
NumPy invert() 函数用于对数组执行按位反转,即非运算。它将输入数组中整数元素的每一位翻转,将 1 变为 0,将 0 变为 1。
反转 操作相当于执行 按位非,在 Python 中可以表示为 ~x。
例如 np.invert(5) 的结果为 -6,因为 5 在二进制中是 0101,而其按位反转结果为 1010,这对应于二进制补码表示中的 -6。
此函数通过生成反转位数组对数组进行逐元素操作。
语法
以下是 NumPy invert() 函数的语法 -
numpy.invert(x)
参数
Numpy invert() 函数接受一个参数,即 x,它是一个整数类型的输入数组。此函数将对数组的每个元素执行按位非运算。
返回值
此函数返回一个对输入数组的每个元素都进行了按位非运算的数组。
示例 1
以下是 NumPy invert() 函数的基本示例。本例中,我们展示了如何使用 invert() 函数对一个无符号 8 位整数数组进行操作,从而有效地翻转每个元素的位 -
import numpy as np # 定义一个由无符号 8 位整数组成的基本数组 x = np.array([0, 1, 2, 3], dtype=np.uint8) # 执行按位非运算 result = np.invert(x) print("原始数组:", x) print("反转数组:", result)
输出
以下是 invert() 函数对两个数组进行操作后的输出 -
原始数组:[0 1 2 3] 反转数组:[255 254 253 252]
示例 2
本例展示了如何使用 invert() 对有符号整数数组进行操作,对每个元素进行按位非运算 -
import numpy as np # 定义一个 8 位有符号整数数组 x = np.array([1, 2, 4, 8], dtype=np.int8) # 执行按位非运算 result = np.invert(x) print("原始数组:", x) print("反转数组:", result)
输出
以下是上述示例的输出 -
原始数组:[1 2 4 8] 反转数组:[-2 -3 -5 -9]
示例 3
以下是 invert() 函数的示例,该函数根据输入数组的数据类型执行不同的操作 -
import numpy as np # 定义不同数据类型的数组 x_uint16 = np.array([0, 1, 2, 3], dtype=np.uint16) x_int32 = np.array([0, 1, 2, 3], dtype=np.int32) # 执行按位非运算 result_uint16 = np.invert(x_uint16) result_int32 = np.invert(x_int32) print("原始 uint16 数组:", x_uint16) print("反转的 uint16 数组:", result_uint16) print("原始 int32 数组:", x_int32) print("反转的 int32 数组:", result_int32)
输出
以下是上述示例的输出 -
原始 uint16 数组:[0 1 2 3] 反转的 uint16 数组:[65535 65534 65533 65532] 原始 int32 数组:[0 1 2 3] 反转的 int32 数组: [-1 -2 -3 -4]