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