numpy.packbits#

numpy.packbits(a, /, axis=None, bitorder='big')#

將二元值陣列的元素打包成 uint8 陣列中的位元。

結果會透過在末尾插入零位元來填充至完整位元組。

參數:
a陣列型物件

一個整數或布林值陣列,其元素應打包成位元。

axis整數,選填

執行位元打包的維度。None 表示打包扁平化陣列。

bitorder{‘big’, ‘little’},選填

輸入位元的順序。 ‘big’ 將模擬 bin(val),[0, 0, 0, 0, 0, 0, 1, 1] => 3 = 0b00000011;‘little’ 將反轉順序,因此 [1, 1, 0, 0, 0, 0, 0, 0] => 3。預設為 ‘big’。

回傳:
packedndarray

uint8 類型的陣列,其元素代表對應於輸入元素的邏輯值(0 或非零)的位元。 packed 的形狀與輸入具有相同的維度數量(除非 axis 為 None,在這種情況下,輸出為 1 維)。

另請參閱

unpackbits

將 uint8 陣列的元素解包成二元值輸出陣列。

範例

>>> import numpy as np
>>> a = np.array([[[1,0,1],
...                [0,1,0]],
...               [[1,1,0],
...                [0,0,1]]])
>>> b = np.packbits(a, axis=-1)
>>> b
array([[[160],
        [ 64]],
       [[192],
        [ 32]]], dtype=uint8)

請注意,在二進位中,160 = 1010 0000、64 = 0100 0000、192 = 1100 0000 以及 32 = 0010 0000。