numpy.unpackbits
numpy.unpackbits(a, axis=None, count=None, bitorder='big')
将uint8数组的元素解压缩为二进制值输出数组。
a的每个元素代表一个位域,应将其解压缩为二进制值输出数组。 输出数组的形状为1-D(如果轴为None)或与输入数组相同的形状,并且沿指定的轴进行unpacking。
参数 : | a :ndarray, uint8 type 输入数组。 axis :int, 可选 完成位解压缩的维度。 count :int 或 None, 可选 沿轴拆包的元素数, 作为消除包装尺寸不是八的倍数的效果的一种方式。 非负数表示仅解包计数位。 负数表示从末尾开始修剪掉很多位。
大于可用位数的计数将为输出添加零填充。 负计数不得超过可用位数。 1.17.0版中的新功能。 bit或der :{‘big’, ‘little’}, 可选 返回位的顺序。‘big’将会模拟 bin(val),
‘little’ 将扭转为 默认为‘big’。新版本1.17.0。 |
返回值 : | unpacked :ndarray, uint8 type 元素是二进制值(0或1)。 |
例子
1)基本用法
import numpy as np a = np.array([2], dtype=np.uint8) bits = np.unpackbits(a) print(bits)
2)多个元素
import numpy as np a = np.array([2, 7], dtype=np.uint8) bits = np.unpackbits(a) print(bits)
3)使用 bitorder='little'
import numpy as np a = np.array([2], dtype=np.uint8) bits = np.unpackbits(a, bitorder='little') print(bits)
4)带 axis 参数的二维数组
import numpy as np a = np.array([[2], [7]], dtype=np.uint8) bits = np.unpackbits(a, axis=1) print(bits)
5)指定 count 参数(截断或补零)
import numpy as np # 二进制 11111111 a = np.array([255], dtype=np.uint8) # 只取前4位 bits = np.unpackbits(a, count=4) print(bits)