赞
踩
numpy.unpackbits
numpy.unpackbits(a, axis=None, count=None, bitorder='big')
将uint8数组的元素解压缩为二进制值输出数组。
a的每个元素代表一个位域,应将其解压缩为二进制值输出数组。 输出数组的形状为1-D(如果轴为None)或与输入数组相同的形状,并且沿指定的轴进行unpacking。参数 :a :ndarray, uint8 type
输入数组。
axis :int, 可选
完成位解压缩的维度。None意味着解压缩扁平化数组。
count :int 或 None, 可选
沿轴拆包的元素数,
作为消除包装尺寸不是八的倍数的效果的一种方式。
非负数表示仅解包计数位。
负数表示从末尾开始修剪掉很多位。
None表示解压缩整个数组(默认值)。
大于可用位数的计数将为输出添加零填充。
负计数不得超过可用位数。
1.17.0版中的新功能。
bit或der :{‘big’, ‘little’}, 可选
返回位的顺序。‘big’将会模拟 bin(val),
3 = 0 b00000011 = >[0, 0, 0, 0, 0, 0, 1, 1],
‘little’ 将扭转为[1,1,0,0,0,0,0,0]。
默认为‘big’。新版本1.17.0。
返回值 :unpacked :ndarray, uint8 type
元素是二进制值(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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。