You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Numpy将uint32数组转换为形状为(2,128)的布尔二进制数组

Numpy实现uint32数组转二进制位布尔数组方案

实现代码

import numpy as np

# 原始数组
a = np.array([[3701687786,  458299110, 2500872618, 3633119408],
              [2377269574, 2599949379,  717229868,  137866584]], dtype=np.uint32)

# 生成32位的移位序列,顺序可根据位排序需求调整
# 此处为从最高位到最低位排列,若要反过来换成 np.arange(32, dtype=np.uint32) 即可
shift_bits = np.arange(31, -1, -1, dtype=np.uint32)

# 每个uint32元素拆分为32个二进制位
splited_bits = ((a[..., np.newaxis] >> shift_bits) & 1).astype(bool)

# 合并维度得到目标形状
result = splited_bits.reshape(2, 128)

结果验证

  • 输出形状:result.shape 为 (2, 128)
  • 数据类型:result.dtype 为 bool

补充说明

你之前使用struct.pack的方案需要额外处理字节序、字节转位的步骤,且无法完全利用numpy的向量化运算优势,直接用位运算拆分的方式更可控高效,也能避免字节序不一致导致的结果不符合预期问题。


内容的提问来源于stack exchange,提问作者Kevin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 23:06:08