numpy.bitwise_invert#
- numpy.bitwise_invert(x, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature]) = <ufunc 'invert'>#
計算逐位元反轉,或逐位元 NOT,以元素方式。
計算輸入陣列中整數的底層二進位表示的逐位元 NOT。此 ufunc 實作 C/Python 運算子
~
。對於帶號整數輸入,會傳回絕對值的逐位元 NOT。在二補數系統中,此運算有效地翻轉所有位元,產生對應於輸入的負數加一的表示。這是電腦上表示帶號整數最常見的方法 [1]。一個 N 位元二補數系統可以表示範圍在 \(-2^{N-1}\) 到 \(+2^{N-1}-1\) 之間的每個整數。
- 參數:
- xarray_like
僅處理整數和布林型別。
- outndarray、None 或 ndarray 和 None 的 tuple,選用
結果儲存的位置。如果提供,則其形狀必須與輸入廣播到的形狀相同。如果未提供或為 None,則會傳回新配置的陣列。tuple(僅可作為關鍵字引數)的長度必須等於輸出的數量。
- wherearray_like,選用
此條件會廣播到輸入。在條件為 True 的位置,out 陣列將設定為 ufunc 結果。在其他位置,out 陣列將保留其原始值。請注意,如果透過預設
out=None
建立未初始化的 out 陣列,則條件為 False 的位置在陣列中將保持未初始化狀態。- **kwargs
對於其他僅限關鍵字引數,請參閱 ufunc 文件。
- 傳回:
- outndarray 或 純量
結果。如果 x 是純量,則這會是純量。
另請參閱
bitwise_and
、bitwise_or
、bitwise_xor
logical_not
binary_repr
以字串形式傳回輸入數字的二進位表示。
註解
numpy.bitwise_not
是invert
的別名>>> np.bitwise_not is np.invert True
參考文獻
[1]範例
>>> import numpy as np
我們已經看到 13 以
00001101
表示。然後 13 的反轉或逐位元 NOT 為>>> x = np.invert(np.array(13, dtype=np.uint8)) >>> x np.uint8(242) >>> np.binary_repr(x, width=8) '11110010'
結果取決於位元寬度
>>> x = np.invert(np.array(13, dtype=np.uint16)) >>> x np.uint16(65522) >>> np.binary_repr(x, width=16) '1111111111110010'
當使用帶號整數型別時,結果是無號型別的逐位元 NOT,解譯為帶號整數
>>> np.invert(np.array([13], dtype=np.int8)) array([-14], dtype=int8) >>> np.binary_repr(-14, width=8) '11110010'
布林值也接受
>>> np.invert(np.array([True, False])) array([False, True])
運算子
~
可以用作 ndarray 上np.invert
的簡寫。>>> x1 = np.array([True, False]) >>> ~x1 array([False, True])