如何创建二维二进制计数Numpy数组?示例需求与实现困境求助
生成4位二进制计数的二维数组解决方案
方法一:利用binary_repr补零后转数组
给binary_repr指定宽度确保每个数都是4位二进制字符串,再逐个字符转成整数存入列表即可:
from numpy import binary_repr result = [] for num in range(16): # 补零到4位,转字符列表再转整数 binary_str = binary_repr(num, width=4) row = [int(c) for c in binary_str] result.append(row) print(result)
方法二:位运算直接生成(无需依赖numpy)
用原生Python位运算提取每一位的值,轻量化且高效:
result = [] for num in range(16): # 依次提取4位二进制的每一位 row = [ (num >> 3) & 1, # 最高位 (num >> 2) & 1, (num >> 1) & 1, num & 1 # 最低位 ] result.append(row) print(result)
说明
两种方法都会生成从[0,0,0,0]到[1,1,1,1]的完整二维数组,方法一适合已使用numpy的场景,方法二纯原生Python更灵活。
内容的提问来源于stack exchange,提问作者chan John
相关产品推荐
相关产品推荐

