统计种子?

2024-10-06 13:21:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用不同的种子生成scipy.stats.pareto.rvs(b,loc=0,scale=1,size=1)。

在numpy中,我们可以使用numpy.random.seed(seed=233423)进行播种。

是否有任何方法可以为scipy stats生成的随机数设定种子。

注意:我没有使用numpy pareto,因为我想为scale提供不同的值。


Tags: 方法numpysizestatsrandomscipy种子loc
2条回答

scipy.stats只是使用numpy.random来生成它的随机数,因此numpy.random.seed()也可以在这里工作。E、 g

import numpy as np
from scipy.stats import pareto
b = 0.9
np.random.seed(seed=233423)
print pareto.rvs(b, loc=0, scale=1, size=5)
np.random.seed(seed=233423)
print pareto.rvs(b, loc=0, scale=1, size=5)

将打印[ 9.7758784 10.78405752 4.19704602 1.19256849 1.02750628]两次。

对于四年后出现在本文中的那些人,Scipy确实提供了一种将np.random.RandomState对象传递到其随机变量类的方法,请参见rv_continuousrv_discrete了解更多详细信息。scipy文档说:

seed : None or int or numpy.random.RandomState instance, optional

This parameter defines the RandomState object to use for drawing random variates. If None (or np.random), the global np.random state is used. If integer, it is used to seed the local RandomState instance. Default is None.

不幸的是,在连续/离散的rvs子类rv_continuousrv_discrete之后,此参数似乎不可用。但是,random_state属性确实属于子类,这意味着我们可以在实例化之后使用np.random.RandomState的实例设置种子,如下所示:

import numpy as np
import scipy.stats as stats

alpha_rv = stats.alpha(3.57)
alpha_rv.random_state = np.random.RandomState(seed=342423)

相关问题 更多 >