numpy.packbits#
- numpy.packbits(a, /, axis=None, bitorder='big')#
将二进制值数组的元素打包到 uint8 数组中的位中。
结果通过在末尾插入零位填充到完整的字节。
- 参数:
- aarray_like
一个整数或布尔值的数组,其元素应打包为位。
- axisint, 可选
执行位打包的维度。
None
表示打包扁平化的数组。- bitorder{‘big’, ‘little’}, 可选
输入位的顺序。‘big’ 将模仿 bin(val),
[0, 0, 0, 0, 0, 0, 1, 1] => 3 = 0b00000011
,‘little’ 将反转顺序,因此[1, 1, 0, 0, 0, 0, 0, 0] => 3
。默认为 ‘big’。版本 1.17.0 中的新功能。
- 返回值:
- packedndarray
类型为 uint8 的数组,其元素表示对应于输入元素的逻辑(0 或非零)值的位。 packed 的形状与输入具有相同的维度数(除非 axis 为 None,在这种情况下,输出为一维)。
另请参阅
unpackbits
将 uint8 数组的元素解包到二进制值输出数组中。
示例
>>> import numpy as np >>> 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。