[在rv_continuous
中创建冻结的scipy.stats
分布时,我希望指定边界(a
和b
)的参数将自动正确填充,但似乎不是:
>>> from scipy.stats import uniform
>>> d = uniform(20, 40) # U[20,60] distribution
>>> d.a # expect 20, get 0
0.0
>>> d.b # expect 60, get 1
1.0
该方法可以正常工作:
>>> d.mean() # expect 40, get 40
40.0
>>> d.interval(1) # expect [20,60], get [20,60]
(20.0, 60.0)
([d.interval(1)
基本上是在这里完成技巧,因为我想获得界限。]
要更新.a
和.b
,我需要做些什么吗?
我在源代码中做了一些挖掘,根据我的理解,没有,没有办法更新那些属性。
[a和b在_continuous_distns.py的第7914行中默认定义为0和1
uniform = uniform_gen(a=0.0, b=1.0, name='uniform')
但是我看不到实际使用这些变量的任何示例。而是使用loc和scale参数设置上下限,其中下限等于loc,上限等于loc + scale。
获得上限和下限的最佳方法是使用support方法
uniform(20,40).support()
>>>
(20,60)