numpy.
unpackbits
将uint8数组的元素解包到二进制值输出数组中。
每个元素 a 表示应解包到二进制值输出数组中的位字段。输出数组的形状为一维(如果 axis 是 None )或与输入数组相同的形状,并沿指定的轴进行解包。
None
输入数组。
完成钻头开箱的尺寸。 None 意味着展开扁平数组。
要拆包的元素数 axis ,用于消除包装尺寸不是8的倍数的影响。非负数表示只打开包装 count 位。一个负数意味着从末尾删去那么多的位。 None 表示解压缩整个阵列(默认值)。大于可用位数的计数将为输出添加零填充。负数不得超过可用位数。
1.17.0 新版功能.
返回位的顺序“大”将模仿bin(val), 3 = 0b00000011 => [0, 0, 0, 0, 0, 0, 1, 1] ,“little”将颠倒顺序 [1, 1, 0, 0, 0, 0, 0, 0] . 默认为“big”。
3 = 0b00000011 => [0, 0, 0, 0, 0, 0, 1, 1]
[1, 1, 0, 0, 0, 0, 0, 0]
元素是二进制值(0或1)。
参见
packbits
将二进制值数组的元素打包成uint8数组中的位。
实例
>>> a = np.array([[2], [7], [23]], dtype=np.uint8) >>> a array([[ 2], [ 7], [23]], dtype=uint8) >>> b = np.unpackbits(a, axis=1) >>> b array([[0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1, 1, 1], [0, 0, 0, 1, 0, 1, 1, 1]], dtype=uint8) >>> c = np.unpackbits(a, axis=1, count=-3) >>> c array([[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 1, 0]], dtype=uint8)
>>> p = np.packbits(b, axis=0) >>> np.unpackbits(p, axis=0) array([[0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1, 1, 1], [0, 0, 0, 1, 0, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]], dtype=uint8) >>> np.array_equal(b, np.unpackbits(p, axis=0, count=b.shape[0])) True