python unpack函数_Python numpy.unpackbits函数方法的使用

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值