当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy unpackbits用法及代码示例


本文简要介绍 python 语言中 numpy.unpackbits 的用法。

用法:

numpy.unpackbits(a, /, axis=None, count=None, bitorder='big')

将 uint8 数组的元素解包为二进制值输出数组。

的每个元素a表示应解压缩为二进制值输出数组的 bit-field。输出数组的形状是一维的(如果None)或与输入数组相同的形状,并沿指定的轴进行解包。

参数

a ndarray, uint8 类型

输入数组。

axis 整数,可选

完成bit-unpacking 的维度。 None 意味着解压缩展平的数组。

count int 或无,可选

要解压的元素数量,作为消除打包大小不是八的倍数的影响的一种方式。非负数表示仅解包数数位。负数意味着从末尾修剪掉那么多位。None表示解压整个数组(默认)。大于可用位数的计数将向输出添加零填充。负计数不得超过可用位数。

bitorder {‘big’, ‘little’},可选

返回位的顺序。 ‘big’ 将模仿 bin(val),3 = 0b00000011 => [0, 0, 0, 0, 0, 0, 1, 1],‘little’ 将顺序颠倒到 [1, 1, 0, 0, 0, 0, 0, 0]。默认为‘big’。

返回

unpacked ndarray, uint8 类型

元素是二进制值(0 或 1)。

例子

>>> 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

相关用法


注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.unpackbits。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。