如何用Python和Numpy生成10位二进制数组的所有可能迭代?
实现10位二进制数组的全枚举(暴力法)
需求说明
暴力生成所有10位二进制数组,通过for循环完成2^10=1024次迭代,数组索引[9,8,...,0]对应二进制位的权重2^9到2^0,每个数组对应0到1023的整数。
代码实现
import numpy as np def main(K): # 匹配需求中的10位长度要求 if K != 10: raise ValueError("当前实现仅支持K=10的场景") for n in range(2**K): # 将整数转换为10位二进制字符串,高位在前(对应数组索引9) binary_str = format(n, '010b') # 转换为numpy整数数组 binary_array = np.array([int(bit) for bit in binary_str]) # 这里可添加自定义处理逻辑,比如打印验证 print(f"迭代{n+1}: values -> {binary_array} 整数格式: {n}") main(K=10)
代码解释
format(n, '010b'):将整数n格式化为固定10位的二进制字符串,自动补前导零,确保长度符合要求(例如n=1得到'0000000001',对应数组索引9到0的高位到低位)。- 列表推导式将二进制字符串的每个字符转为整数,再通过
np.array()生成目标numpy数组。 - 循环遍历
0到1023的所有整数,完整覆盖10位二进制的所有可能组合。
内容的提问来源于stack exchange,提问作者Theonewhomadethings
相关产品推荐
相关产品推荐

