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

如何使用random.poisson从大量整数中抽取泊松分布样本?

用np.random.poisson替代np.random.binomial实现大样本小概率抽样

嘿,这个需求刚好踩中了二项分布和泊松分布的经典近似场景!当你有极大的总数量X(比如这里的10^8)和较小的抽样概率p时,二项分布Binomial(n,p)可以用泊松分布Poisson(λ)完美近似,这是统计学里的泊松近似定理,完全适配你的场景。

具体实现方法

  1. 先计算泊松分布的核心参数λ:也就是总数量X乘以抽样概率p,即 λ = X * p
  2. 直接调用np.random.poisson(),把计算好的λ传入lam参数即可生成符合要求的样本

对应代码如下:

import numpy as np

X = 10**8
p = 0.05
lam = X * p  # 这里计算结果为5e6
s = np.random.poisson(lam=lam)

为什么这个方法可行?

当n(这里的X)极大、p很小,且λ = n*p是一个大小适中的数值时,二项分布的概率分布会和泊松分布几乎重合。比如你举的例子里,X=1e8,p=0.05,λ=5e6,两种方法生成的样本在均值、方差等统计特性上几乎没有差异——而且泊松抽样在计算效率上可能更优,毕竟不需要处理超大的n值。

小提醒

如果你的抽样概率p不算小,或者总数量X没有那么大,这个近似的准确性会下降,但你的场景完全满足泊松近似的条件,放心用就好~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:18:18