當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python numpy invert用法及代碼示例


本文簡要介紹 python 語言中 numpy.invert 的用法。

用法:

numpy.invert(x, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True [, signature, extobj ]) = <ufunc 'invert'>

計算逐位求逆,或逐位非,逐元素。

計算輸入數組中整數的底層二進製表示的按位 NOT。這個 ufunc 實現了 C/Python 運算符 ~

對於有符號整數輸入,返回二進製補碼。在二進製補碼係統中,負數由絕對值的二進製補碼表示。這是在計算機上表示有符號整數的最常用方法 [1]。 N-bit 二進製補碼係統可以表示 範圍內的每個整數。

參數

x array_like

僅處理整數和布爾類型。

out ndarray,None,或 ndarray 和 None 的元組,可選

存儲結果的位置。如果提供,它必須具有輸入廣播到的形狀。如果未提供或 None,則返回一個新分配的數組。元組(隻能作為關鍵字參數)的長度必須等於輸出的數量。

where 數組,可選

此條件通過輸入廣播。在條件為真的位置,out數組將設置為 ufunc 結果。在其他地方,out數組將保留其原始值。請注意,如果未初始化out數組是通過默認創建的out=None,其中條件為 False 的位置將保持未初始化狀態。

**kwargs

對於其他僅關鍵字參數,請參閱 ufunc 文檔。

返回

out ndarray 或標量

結果。如果 x 是標量,則這是一個標量。

注意

bitwise_notinvert 的別名:

>>> np.bitwise_not is np.invert
True

參考

1

維基百科,“補碼”,https://en.wikipedia.org/wiki/Two’s_complement

例子

我們已經看到 13 由 00001101 表示。那麽 13 的反轉或按位 NOT 是:

>>> x = np.invert(np.array(13, dtype=np.uint8))
>>> x
242
>>> np.binary_repr(x, width=8)
'11110010'

結果取決於bit-width:

>>> x = np.invert(np.array(13, dtype=np.uint16))
>>> x
65522
>>> np.binary_repr(x, width=16)
'1111111111110010'

當使用有符號整數類型時,結果是無符號類型結果的二進製補碼:

>>> 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])

相關用法


注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.invert。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。