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

如何用rng固定scipy中gamma.rvs的采样结果?

固定Gamma分布采样结果的最优方案

要固定scipy.stats.gamma的采样结果,核心是通过random_state参数指定可控的随机数生成逻辑,以下是两种可靠方案:

方案1:直接传入整数种子值

适合简单场景,每次调用rvs时指定同一个种子即可重复得到相同采样结果:

from scipy.stats import gamma

# 固定种子为42,每次运行这段代码输出完全一致
fixed_samples = gamma.rvs(a=20, loc=0, scale=1/2, size=10, random_state=42)
print(fixed_samples)

方案2:使用独立的随机数生成器实例(推荐)

如果代码中还有其他随机操作,用独立生成器可以避免全局随机状态被污染,同时保持采样可复现:

from scipy.stats import gamma
import numpy as np

# 创建固定种子的独立随机数生成器
rng = np.random.default_rng(seed=42)
# 传入生成器采样
fixed_samples = gamma.rvs(a=20, loc=0, scale=1/2, size=10, random_state=rng)
print(fixed_samples)

关键说明

  • 避免使用np.random.seed()这类全局种子设置,它会影响所有依赖numpy随机数的代码,耦合性高
  • 只要种子值固定,无论是直接传整数还是用生成器实例,每次运行都能得到完全相同的采样数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 06:44:51