s5s*_*s5s 5 python statistics numpy scipy pandas
我使用scipy.stats的各种连续分布(例如norm).所以如果我想找到P(Z <0.5),我会这样做:
from scipy.stats import norm
norm(0, 1).cdf(0.5) # Z~N(0,1)
Run Code Online (Sandbox Code Playgroud)
是否有工具(scipy.stats或statsmodels或其他)可用于描述离散分布,然后计算CDF/CMF等?我可以自己编写代码,但我想知道是否存在某些内容,例如:
pdf(x)= 1/3,x = 1,2,3; 否则0
然后我可以构造2个向量x = [1,2,3],p = [1/3,1/3,1/3]并将它们输入到一个库类中,然后提供.cdf()等?
我猜你正在寻找scipy.stats.rv_discrete这里。来自文档:
rv_discrete是为离散随机变量构造特定分布类和实例的基类。它还可用于构造由支持点列表和相应概率定义的任意分布。
文档中的示例:
from scipy import stats
xk = np.arange(7)
pk = (0.1, 0.2, 0.3, 0.1, 0.1, 0.0, 0.2)
custm = stats.rv_discrete(name='custm', values=(xk, pk))
Run Code Online (Sandbox Code Playgroud)
还有你的例子:
In [1]: import numpy as np
In [2]: from scipy import stats
In [3]: custm = stats.rv_discrete(name='custm', values=((1, 2, 3), (1./3, 1./3, 1./3)))
In [4]: custm.cdf(2.5)
Out[4]: 0.66666666666666663
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
422 次 |
| 最近记录: |