jax.numpy.packbits#
- jax.numpy.packbits(a, axis=None, bitorder='big')[源代码]#
将位数组打包成 uint8 数组。
JAX 对
numpy.packbits()的实现。- 参数:
- 返回:
打包值的 uint8 数组。
- 返回类型:
另请参阅
jax.numpy.unpackbits():packbits的逆操作。
示例
在一维中打包位
>>> bits = jnp.array([0, 0, 0, 0, 0, 1, 1, 1]) >>> jnp.packbits(bits) Array([7], dtype=uint8) >>> 0b00000111 # equivalent bit-wise representation: 7
可选地指定小端约定
>>> jnp.packbits(bits, bitorder="little") Array([224], dtype=uint8) >>> 0b11100000 # equivalent bit-wise representation 224
如果位数不是 8 的倍数,则会用零进行右填充。
>>> jnp.packbits(jnp.array([1, 0, 1])) Array([160], dtype=uint8) >>> jnp.packbits(jnp.array([1, 0, 1, 0, 0, 0, 0, 0])) Array([160], dtype=uint8)
对于多维输入,可以沿着指定的轴打包位。
>>> a = jnp.array([[1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0], ... [0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1]]) >>> vals = jnp.packbits(a, axis=1) >>> vals Array([[212, 150], [ 69, 207]], dtype=uint8)
packbits的逆操作由unpackbits()提供。>>> jnp.unpackbits(vals, axis=1) Array([[1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0], [0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1]], dtype=uint8)