numpy.packbits()是另一个在numpy中执行二进制运算的函数,用于将二进制值数组的元素打包为uint8数组中的位,结果通过在末尾插入零位填充为完整字节。
用法: numpy.packbits(arr, axis=None)
参数:
arr :[数组]一个整数或布尔数组,其元素应打包为位。
axis :[int,optional]完成bit-packing的尺寸。如果没有完成,则以展平数组的形式进行打包。
Return :[packed ndarray] uint8类型的数组,其元素表示对应于输入元素的逻辑(0或非零)值的位。
代码1:
# Python program explaining
# numpy.packbits() function
# importing numpy
import numpy as geek
# creating input array using
# array function
in_arr = geek.array([[[1, 0, 1],
[0, 1, 0]],
[[1, 1, 0],
[0, 0, 1]]])
print ("Input array:", in_arr)
# packing elements of an array
# using packbits() function
out_arr = geek.packbits(in_arr)
print ("Output packed array:", out_arr)
输出:
Input array:
[[[1 0 1]
[0 1 0]]
[[1 1 0]
[0 0 1]]]
Output packed array: [171 16]
代码2:
# Python program explaining
# numpy.packbits() function
# importing numpy
import numpy as geek
# creating input array using
# array function
in_arr = geek.array([[[0, 0, 1],
[1, 1, 0]],
[[1, 0, 0],
[1, 1, 1]]])
print ("Input array:", in_arr)
# packing elements of an array
# using packbits() function
out_arr = geek.packbits(in_arr, axis = 1)
print ("Output packed array along axis 1:", out_arr)
输出:
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]]]