w3resource

NumPy Binary operations: unpackbits() function

numpy.unpackbits() function

The unpackbits() function is used to unpack elements of a uint8 array into a binary-valued output array.
Note: Each element of myarray represents a bit-field that should be unpacked into a binary-valued output array. The shape of the output array is either 1-D (if axis is None) or the same shape as the input array with unpacking done along the axis specified.

Some common applications of numpy.unpackbits() include:
Data Decompression: Unpacking compressed binary data stored in byte arrays back into binary arrays for further processing or analysis.
Image Processing: Converting compact byte arrays of binary images or masks back into binary arrays for manipulation, display, or further processing.
Cryptography: Converting byte-level representations of encrypted data or keys back into bit-level representations for decryption or analysis.
Network Communication: Unpacking byte arrays of binary data or bit fields received over network protocols that require byte-aligned data, back into binary arrays for further processing or analysis.

Syntax:

numpy.unpackbits(myarray, axis=None)

Parameters:

Name Description Required /
Optional
myarray Input array Required
axis The dimension over which bit-unpacking is done. None implies unpacking the flattened array. Optional

Return value:
unpacked [ndarray, uint8 type]
The elements are binary-valued (0 or 1).

Example: Unpacking byte arrays into binary arrays with NumPy

>>> import numpy as np
>>> x = np.array([[3], [5], [15]], dtype=np.uint8)
>>> x
array([[ 3],
       [ 5],
       [15]], dtype=uint8)
>>> y = np.unpackbits(x, axis=1)
>>> y
array([[0, 0, 0, 0, 0, 0, 1, 1],
       [0, 0, 0, 0, 0, 1, 0, 1],
       [0, 0, 0, 0, 1, 1, 1, 1]], dtype=uint8)

In the above code, a 2-dimensional NumPy array x with the shape (3, 1) and dtype uint8 is created. The numpy.unpackbits() function is used to unpack the byte values in x along the specified axis (axis=1) into binary arrays. The resulting y array has the shape (3, 8) and contains the unpacked binary representation of the input byte data.

Python Code Editor:

Previous: packbits()
Next: binary_repr()



Follow us on Facebook and Twitter for latest update.