解包元素并将解包计数设置为大于 Numpy 中可用的位数
要将 uint8 数组的元素解包为二进制值输出数组,请使用 Python Numpy 中的 numpy.unpackbits() 方法。结果为二进制值(0 或 1)。axis 是进行位解包的维度。axis 使用"axis"参数设置。要设置要解包的元素数量,请使用"count"参数。
输入数组的每个元素都代表一个位域,应将其解包为二进制值输出数组。输出数组的形状要么是一维的(如果 axis 为 None),要么与输入数组的形状相同,但沿指定的 axis 进行解包。
axis 是进行位解包的维度。"None"表示对扁平化的数组进行解包。 count 参数是沿轴解包的元素数量,用于消除打包非八倍数大小的影响。非负数表示仅解包 count 个位。负数表示从末尾去掉相应数量的位。None 表示解包整个数组(默认值)。大于可用位数的计数将在输出中添加零填充。负数计数不得超过可用位数。
顺序是返回位的顺序。"big"将模拟 bin(val), 3 = 0b00000011 ⇒ [0, 0, 0, 0, 0, 0, 1, 1],"little"将反转顺序为 [1, 1, 0, 0, 0, 0, 0, 0]。默认为"big"。
步骤
首先,导入所需的库 −
import numpy as np
创建一个二维数组。我们使用"dtype"参数设置了 uint8 类型 −
arr = np.array([[4, 8], [6, 19], [27, 35]], dtype=np.uint8)
显示我们的数组 −
print("数组...
",arr)
获取数据类型 −
print("
数组数据类型...
",arr.dtype)
获取数组的维度 −
print("
数组维度...
",arr.ndim)
获取数组的形状 −
print("
我们的数组形状...
",arr.shape)
获取数组元素的数量 −
print("
数组中的元素...
",arr.size)
要将 uint8 数组的元素解包为二进制值输出数组,请使用 numpy.unpackbits() 方法。结果为二进制值(0 或 1)。axis 是进行位解包的维度。axis 使用"axis"参数设置。要设置要解包的元素数量,请使用"count"参数。我们将 count 设置为 25,即大于可用位数的计数将在输出中添加零填充。 −
res = np.unpackbits(arr, axis = 1, count = 25)
print("
结果...
",res)
示例
import numpy as np
# 创建二维数组
# 我们使用"dtype"参数设置了 uint8 类型
arr = np.array([[4, 8], [6, 19], [27, 35]], dtype=np.uint8)
# 显示我们的数组
print("数组...
",arr)
# 获取数据类型
print("
数组数据类型...
",arr.dtype)
# 获取数组的维度
print("
数组维度...
",arr.ndim)
# 获取数组的形状
print("
我们的数组形状...
",arr.shape)
# 获取数组元素的数量
print("
数组中的元素...
",arr.size)
# 要将 uint8 数组的元素解包为二进制值输出数组,请使用 Python Numpy 中的 numpy.unpackbits() 方法。
# 结果为二进制值(0 或 1)。
# 轴是进行位解包的维度。
# 使用"axis"参数设置轴。
# 要设置要解包的元素数量,请使用"count"参数。
# 我们将 count 设置为 25,即大于可用位数的计数将在输出中添加零填充。
res = np.unpackbits(arr, axis = 1, count = 25)
print("
结果...
",res)
输出
数组... [[ 4 8] [ 6 19] [27 35]] 数组数据类型... uint8 数组维度... 2 我们的数组形状... (3, 2) 数组中的元素... 6 结果... [[0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0] [0 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0]]

