numpy.unpackbits
-
numpy.unpackbits(a, axis=None, count=None, bitorder='big')
-
Unpacks elements of a uint8 array into a binary-valued output array.
Each element of
a
represents a bit-field that should be unpacked into a binary-valued output array. The shape of the output array is either 1-D (ifaxis
isNone
) or the same shape as the input array with unpacking done along the axis specified.- Parameters
-
-
andarray, uint8 type
-
Input array.
-
axisint, optional
-
The dimension over which bit-unpacking is done.
None
implies unpacking the flattened array. -
countint 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 non-negative number means to only unpackcount
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
-
-
unpackedndarray, uint8 type
-
The elements are binary-valued (0 or 1).
-
See also
-
packbits
-
Packs the elements of a binary-valued 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
© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/generated/numpy.unpackbits.html