numpy.unpackbits#

numpy.unpackbits(a, /, ось=None, count=None, bitorder='big')#

Распаковывает элементы массива uint8 в выходной массив с двоичными значениями.

Каждый элемент a представляет битовое поле, которое должно быть распаковано в выходной массив с двоичными значениями. Форма выходного массива либо 1-D (если ось является None) или той же формы, что и входной массив, с распаковкой вдоль указанной оси.

Параметры:
andarray, тип uint8

Входной массив.

осьint, необязательный

Измерение, по которому выполняется распаковка битов. None подразумевает распаковку сглаженного массива.

countint или None, опционально

Количество элементов для распаковки вдоль ось, предоставленный как способ отменить эффект упаковки размера, не кратного восьми. Неотрицательное число означает распаковать только count бит. Отрицательное число означает обрезание такого количества бит с конца. None означает распаковку всего массива (по умолчанию). Количества, превышающие доступное количество битов, будут добавлять нулевое заполнение к выводу. Отрицательные количества не должны превышать доступное количество битов.

bitorder{‘big’, ‘little’}, опционально

Порядок возвращаемых битов. 'big' будет имитировать bin(val), 3 = 0b00000011 => [0, 0, 0, 0, 0, 0, 1, 1], 'little' изменит порядок на [1, 1, 0, 0, 0, 0, 0, 0]. По умолчанию ‘big’.

Возвращает:
unpackedndarray, тип uint8

Элементы имеют двоичные значения (0 или 1).

Смотрите также

packbits

Упаковывает элементы двоичного массива в биты массива uint8.

Примеры

>>> import numpy as np
>>> a = np.array([[2], [7], [23]], dtype=np.uint8)
>>> a
array([[ 2],
       [ 7],
       [23]], dtype=uint8)
>>> b = np.unpackbits(a, axis=1)
>>> b
array([[0, 0, 0, 0, 0, 0, 1, 0],
       [0, 0, 0, 0, 0, 1, 1, 1],
       [0, 0, 0, 1, 0, 1, 1, 1]], dtype=uint8)
>>> c = np.unpackbits(a, axis=1, count=-3)
>>> c
array([[0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0],
       [0, 0, 0, 1, 0]], dtype=uint8)
>>> p = np.packbits(b, axis=0)
>>> np.unpackbits(p, axis=0)
array([[0, 0, 0, 0, 0, 0, 1, 0],
       [0, 0, 0, 0, 0, 1, 1, 1],
       [0, 0, 0, 1, 0, 1, 1, 1],
       [0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0]], dtype=uint8)
>>> np.array_equal(b, np.unpackbits(p, axis=0, count=b.shape[0]))
True