numpy.packbits — NumPy v2.3 Manual (original) (raw)

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

Packs the elements of a binary-valued array into bits in a uint8 array.

The result is padded to full bytes by inserting zero bits at the end.

Parameters:

aarray_like

An array of integers or booleans whose elements should be packed to bits.

axisint, optional

The dimension over which bit-packing is done.None implies packing the flattened array.

bitorder{‘big’, ‘little’}, optional

The order of the input bits. ‘big’ will mimic bin(val),[0, 0, 0, 0, 0, 0, 1, 1] => 3 = 0b00000011, ‘little’ will reverse the order so [1, 1, 0, 0, 0, 0, 0, 0] => 3. Defaults to ‘big’.

Returns:

packedndarray

Array of type uint8 whose elements represent bits corresponding to the logical (0 or nonzero) value of the input elements. The shape of_packed_ has the same number of dimensions as the input (unless _axis_is None, in which case the output is 1-D).

See also

unpackbits

Unpacks elements of a uint8 array into a binary-valued output array.

Examples

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)

Note that in binary 160 = 1010 0000, 64 = 0100 0000, 192 = 1100 0000, and 32 = 0010 0000.