2. 离散随机变量
查看所有的连续随机变量:
[k for k,v in stats.__dict__.items() if isinstance(v,stats.rv_discrete)]
离散随机变量对象都有如下方法:
rvs(<shape(s)>, loc=0, size=1)
:生成随机值pmf(x, <shape(s)>, loc=0)
:概率密度函数在x
处的值logpmf(x, <shape(s)>, loc=0)
:概率密度函数在x
处的对数值cdf(x, <shape(s)>, loc=0)
:累积分布函数在x
处的取值logcdf(x, <shape(s)>, loc=0)
:累积分布函数在x
处的对数值sf(x, <shape(s)>, loc=0)
:生存函数在x
处的值logsf(x, <shape(s)>, loc=0, scale=1)
:生存函数在x
处的对数值ppf(q, <shape(s)>, loc=0)
:累积分布函数的反函数isf(q, <shape(s)>, loc=0)
:生存函数的反函数moment(n, <shape(s)>, loc=0)
:non-central n-th moment of the distribution. May not work for array arguments.stats(<shape(s)>, loc=0, moments='mv')
:计算期望方差等统计量entropy(<shape(s)>, loc=0)
:计算熵expect(func=None, args=(), loc=0, lb=None, ub=None, conditional=False)
:Expected value of a function with respect to the distribution. Additional kwd arguments passed to integrate.quadmedian(<shape(s)>, loc=0)
:计算该分布的中值mean(<shape(s)>, loc=0)
:计算该分布的均值std(<shape(s)>, loc=0)
:计算该分布的标准差var(<shape(s)>, loc=0)
:计算该分布的方差interval(alpha, <shape(s)>, loc=0)
Interval that with alpha percent probability contains a random realization of this distribution.__call__(<shape(s)>, loc=0)
:产生一个参数冻结的随机变量
我们也可以通过
rv_discrete
类自定义离散概率分布:x=range(1,7)
p=(0.1,0.3,0.1,0.3,0.1,0.1)
stats.rv_discrete(values=(x,p))
只需要传入一个
values
关键字参数,它是一个元组。元组的第一个成员给出了随机变量的取值集合,第二个成员给出了随机变量每一个取值的概率