scipy.stats种子?(scipy.stats seed?)

2019-08-31 06:25发布

我想生成scipy.stats.pareto.rvs(B,LOC = 0,比例= 1,大小= 1)与不同的种子。

在numpy的,我们可以使用种子numpy.random.seed(种子= 233423)。

有什么办法种子由SciPy的统计生成的随机数。

注:我没有使用numpy的帕累托,因为我要为规模给予不同的值。

Answer 1:

scipy.stats只是使用numpy.random产生的随机数,所以numpy.random.seed()将工作在这里。 例如,

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]两次。



Answer 2:

对于那些谁在这一职位四年之后发生,SciPy的确实提供了一种将通过np.random.RandomState对象的随机变量类,请参见rv_continuous和rv_discrete的更多细节。 该SciPy的文档这样说:

种子:无或int或numpy.random.RandomState例如,可选

该参数定义了RandomState对象要用于绘制随机变元。 如果没有(或np.random),使用全局np.random状态。 如果整数,它是用来播种本地RandomState实例。 默认为无。

不幸的是,似乎这种说法不可用后的连续/离散RVS继承rv_continuousrv_discrete 。 然而, random_state财产不属于sublass,这意味着我们可以使用的实例设置种子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)


文章来源: scipy.stats seed?