jax.numpy.packbits#
- jax.numpy.packbits(a, axis=None, bitorder='big')[源代码]#
将位数组打包成 uint8 数组。
numpy.packbits()
的 JAX 实现- 参数:
- 返回:
一个包含打包值的 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)