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