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

如何重复执行均匀分布数值统计流程并存储每次结果?

问题分析与解决方法

你的代码存在两个核心问题:

  • 外层循环中没有重新生成新的随机数组y,始终用同一组数据统计,结果自然重复
  • 没有为每次统计初始化统计变量,且未存储单次统计结果,最终得到的是N次统计的总和而非每次的独立值

正确实现(基础循环版)

我们需要在每次外层循环中:重新生成随机数组、初始化统计变量、完成统计后将结果存入列表:

import numpy as np

N = 5
results = []  # 存储每次统计的X值

for _ in range(N):
    # 每次循环重新生成均匀分布的随机数组
    y = np.random.uniform(0, 500, 500)
    x_count = 0
    for val in y:
        if val < 1:
            x_count += 1
    results.append(x_count)

print(results)  # 输出每次的统计结果,比如类似[1, 0, 2, 1, 0]

更高效的Numpy向量化实现

利用Numpy的向量化操作可以简化代码,避免嵌套循环,运行效率更高:

import numpy as np

N = 5
# 一次性生成N组500个元素的随机数组,形状为(N, 500)
y = np.random.uniform(0, 500, (N, 500))
# 对每组统计小于1的元素数量,得到长度为N的结果数组
results = (y < 1).sum(axis=1)

print(results.tolist())  # 转为列表输出,和循环版结果格式一致

关键说明

  • 向量化版本中,(y < 1)会生成一个布尔数组,sum(axis=1)表示按行(即每组数据)求和,统计True的数量(对应小于1的元素)
  • 两种方式都能实现需求,向量化版本更适合大数据量的场景

内容的提问来源于stack exchange,提问作者In the blind

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 02:25:49