NumPy invert() 函数



NumPy 的invert()函数用于对数组执行按位取反,即 NOT 操作。它通过将 1 变成 0,将 0 变成 1 来翻转输入数组中整数元素的每一位。

取反操作等同于执行按位 NOT,在 Python 中可以表示为~x

例如,np.invert(5)的结果为 -6,因为 5 的二进制表示为 0101,其按位取反得到 1010,在二进制补码表示中对应 -6。

此函数通过生成一个反转位数组,对数组进行逐元素操作。

语法

以下是 NumPy invert() 函数的语法:

numpy.invert(x)

参数

Numpy invert() 函数接受一个名为x的参数,它是一个整数类型的输入数组。此函数将对数组的每个元素执行按位 NOT操作。

返回值

此函数返回一个数组,其中包含对输入数组的每个元素应用按位 NOT的结果。

示例 1

以下是 NumPy invert() 函数的基本示例。在此示例中,我们展示了如何在无符号 8 位整数数组上使用invert()函数,有效地翻转每个元素的位:

import numpy as np

# Define a basic array of unsigned 8-bit integers
x = np.array([0, 1, 2, 3], dtype=np.uint8)

# Perform bitwise NOT operation
result = np.invert(x)

print("Original array:", x)
print("Inverted array:", result)

输出

以下是应用于两个数组的invert()函数的输出:

Original array: [0 1 2 3]
Inverted array: [255 254 253 252]

示例 2

在此示例中,我们展示了invert()如何在带符号整数数组上工作,这将导致每个元素的按位 NOT:

import numpy as np

# Define an array of 8-bit signed integers
x = np.array([1, 2, 4, 8], dtype=np.int8)

# Perform bitwise NOT operation
result = np.invert(x)

print("Original array:", x)
print("Inverted array:", result)

输出

以下是上述示例的输出:

Original array: [1 2 4 8]
Inverted array: [-2 -3 -5 -9]

示例 3

以下是invert()函数的示例,其中此函数的行为根据输入数组的数据类型而有所不同:

import numpy as np

# Define arrays of different data types
x_uint16 = np.array([0, 1, 2, 3], dtype=np.uint16)
x_int32 = np.array([0, 1, 2, 3], dtype=np.int32)

# Perform bitwise NOT operation
result_uint16 = np.invert(x_uint16)
result_int32 = np.invert(x_int32)

print("Original uint16 array:", x_uint16)
print("Inverted uint16 array:", result_uint16)

print("Original int32 array:", x_int32)
print("Inverted int32 array:", result_int32)

输出

以下是上述示例的输出:

Original uint16 array: [0 1 2 3]
Inverted uint16 array: [65535 65534 65533 65532]
Original int32 array: [0 1 2 3]
Inverted int32 array: [-1 -2 -3 -4]
numpy_binary_operators.htm
广告