numpy.unpackbits¶

numpy.
unpackbits
(a, axis=None, count=None, bitorder='big')¶ Unpacks elements of a uint8 array into a binaryvalued output array.
Each element of a represents a bitfield that should be unpacked into a binaryvalued output array. The shape of the output array is either 1D (if axis is
None
) or the same shape as the input array with unpacking done along the axis specified.Parameters:  a : ndarray, uint8 type
Input array.
 axis : int, optional
The dimension over which bitunpacking is done.
None
implies unpacking the flattened array. count : int or None, optional
The number of elements to unpack along axis, provided as a way of undoing the effect of packing a size that is not a multiple of eight. A nonnegative number means to only unpack count bits. A negative number means to trim off that many bits from the end.
None
means to unpack the entire array (the default). Counts larger than the available number of bits will add zero padding to the output. Negative counts must not exceed the available number of bits.New in version 1.17.0.
 bitorder : {‘big’, ‘little’}, optional
The order of the returned bits. ‘big’ will mimic bin(val),
3 = 0b00000011 => [0, 0, 0, 0, 0, 0, 1, 1]
, ‘little’ will reverse the order to[1, 1, 0, 0, 0, 0, 0, 0]
. Defaults to ‘big’.New in version 1.17.0.
Returns:  unpacked : ndarray, uint8 type
The elements are binaryvalued (0 or 1).
See also
packbits
 Packs the elements of a binaryvalued array into bits in a uint8 array.
Examples
>>> 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