numpy.packbits #
- 麻木的。packbits ( a , / , axis = None , bitorder = 'big' ) #
将二进制值数组的元素打包为 uint8 数组中的位。
通过在末尾插入零位将结果填充为完整字节。
- 参数:
- 类似数组
整数或布尔值的数组,其元素应打包为位。
- 轴int,可选
完成位打包的维度。
None
意味着打包展平的数组。- 位顺序{'big', 'little'},可选
输入位的顺序。 'big' 将模仿 bin(val), 'little' 将颠倒顺序,因此。默认为“大”。
[0, 0, 0, 0, 0, 0, 1, 1] => 3 = 0b00000011
[1, 1, 0, 0, 0, 0, 0, 0] => 3
1.17.0 版本中的新增功能。
- 返回:
- 压缩数组
uint8 类型的数组,其元素表示与输入元素的逻辑(0 或非零)值相对应的位。Packed的形状 与输入具有相同的维数(除非axis 为 None,在这种情况下输出为一维)。
也可以看看
unpackbits
将 uint8 数组的元素解包为二进制值输出数组。
例子
>>> a = np.array([[[1,0,1], ... [0,1,0]], ... [[1,1,0], ... [0,0,1]]]) >>> b = np.packbits(a, axis=-1) >>> b array([[[160], [ 64]], [[192], [ 32]]], dtype=uint8)
请注意,在二进制中,160 = 1010 0000、64 = 0100 0000、192 = 1100 0000 和 32 = 0010 0000。