numpy.packbits() in Python (original) (raw)

Last Updated : 20 Feb, 2019

numpy.packbits() is another function for doing binary operations in numpy.It is used to 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.

Syntax : numpy.packbits(arr, axis=None)

Parameters :
arr : [array_like] An array of integers or booleans whose elements should be packed to bits.
axis : [ int, optional] The dimension over which bit-packing is done.If none then packing is done in flattened array.

Return : [packed ndarray] Array of type uint8 whose elements represent bits corresponding to the logical (0 or nonzero) value of the input elements.

Code #1 :

import numpy as geek

in_arr = geek.array([[[ 1 , 0 , 1 ],

`` [ 0 , 1 , 0 ]],

`` [[ 1 , 1 , 0 ],

`` [ 0 , 0 , 1 ]]])

print ( "Input array : " , in_arr)

out_arr = geek.packbits(in_arr)

print ( "Output packed array : " , out_arr)

Output :

Input array :
[[[1 0 1] [0 1 0]]

[[1 1 0] [0 0 1]]] Output packed array : [171 16]

Code #2 :

import numpy as geek

in_arr = geek.array([[[ 0 , 0 , 1 ],

`` [ 1 , 1 , 0 ]],

`` [[ 1 , 0 , 0 ],

`` [ 1 , 1 , 1 ]]])

print ( "Input array : " , in_arr)

out_arr = geek.packbits(in_arr, axis = 1 )

print ( "Output packed array along axis 1 : " , out_arr)

Output :

Input array : [[[0 0 1] [1 1 0]]

[[1 0 0] [1 1 1]]] Output packed array along axis 1 : [[[ 64 64 128]]

[[192 64 64]]]

Similar Reads