我正在努力弄清楚如何使用scipy.distributions包,并想知道是否有人可以为我发布一些示例代码。它似乎做了我需要的一切,我只是无法弄清楚如何使用它。
我需要生成两个分布,一个log-normal和一个poisson。我知道每个的方差和lambda。
资源链接也可以。
答案 0 :(得分:6)
我认为你的意思是scipy.stats
中的分布。要创建分布,请生成随机变量并计算pdf:
Python 2.5.1(r251:54863,2008年2月4日,21:48:13) darwin上的[GCC 4.0.1(Apple Inc. build 5465)] 输入“帮助”,“版权”,“信用”或“许可”以获取更多信息。
>>> from scipy.stats import poisson, lognorm
>>> myShape = 5;myMu=10
>>> ln = lognorm(myShape)
>>> p = poisson(myMu)
>>> ln.rvs((10,)) #generate 10 RVs from ln
array([ 2.09164812e+00, 3.29062874e-01, 1.22453941e-03,
3.80101527e+02, 7.67464002e-02, 2.53530952e+01,
1.41850880e+03, 8.36347923e+03, 8.69209870e+03,
1.64317413e-01])
>>> p.rvs((10,)) #generate 10 RVs from p
array([ 8, 9, 7, 12, 6, 13, 11, 11, 10, 8])
>>> ln.pdf(3) #lognorm PDF at x=3
array(0.02596183475208955)
可以在新的SciPy documentation网站上找到其他方法(以及scipy.stats
文档的其余部分)。
答案 1 :(得分:3)
以下是一些示例代码:Probability distributions in SciPy