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

为何无法获取scipy.stats.randint生成的随机整数值?

问题解答

你用randint(1,5)和randint(5,10)创建的是冻结的随机分布对象(即rv_frozen实例),它只定义了随机变量的分布规则,并没有直接生成具体的随机数值。所以直接访问字典里的这个对象,得到的就是分布实例本身,不是具体的整数。

要获取具体的随机整数值,你需要调用这个分布对象的rvs()方法,示例代码如下:

from scipy.stats import randint
param_distributions = {'n_estimators': randint(1, 5),
                       'max_depth': randint(5, 10)}

# 获取单个随机值
max_depth_value = param_distributions["max_depth"].rvs()
print(max_depth_value)

# 生成多个随机值可指定size参数
multiple_values = param_distributions["max_depth"].rvs(size=3)
print(multiple_values)

顺带提一句,这类冻结分布对象常被用于模型调优工具(比如RandomizedSearchCV),这些工具会自动调用rvs()生成参数值。如果是手动生成数值,就得自己调用这个方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 19:10:33