开发手册 欢迎您!
软件开发者资料库

Python Numpy random.poisson() 泊松分布

NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍Python Numpy random.poisson() 泊松分布

1、泊松分布

泊松分布是离散分布。

它估计一个事件在指定时间内可能发生的次数。如果一个人一天吃两次饭,他吃三次饭的可能性有多大?

它有两个参数:

lam-发生率或已知次数,例如 上述问题2。

size-返回数组的形状。

例如:

为发生次数2生成随机的1x10分布:

from numpy import randomx = random.poisson(lam=2, size=10)print(x)

2、泊松分布的可视化

例如: Result

from numpy import randomimport matplotlib.pyplot as pltimport seaborn as snssns.distplot(random.poisson(lam=2, size=1000), kde=False)plt.show()

3、正态分布和泊松分布的区别

正态分布是连续的,而泊松是离散的。

但我们可以看到,对于一个足够大的泊松分布,类似于二项分布,它会变得类似于具有一定std开发和均值的正态分布。

例如: 

from numpy import randomimport matplotlib.pyplot as pltimport seaborn as snssns.distplot(random.normal(loc=50, scale=7, size=1000), hist=False, label='normal')sns.distplot(random.poisson(lam=50, size=1000), hist=False, label='poisson')plt.show()

Result

httpswwwwonherocom

4、泊松分布和二项分布的区别

差异非常细微,因为二项式分布用于离散试验,而泊松分布用于连续试验。

但是对于非常大的n和接近零的p,二项式分布几乎与泊松分布相同,因此n * p几乎等于lam

例如:

from numpy import randomimport matplotlib.pyplot as pltimport seaborn as snssns.distplot(random.binomial(n=1000, p=0.01, size=1000), hist=False, label='binomial')sns.distplot(random.poisson(lam=10, size=1000), hist=False, label='poisson')plt.show()

 Result

httpswwwwonherocom