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)