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

1、二项分布(Binomial Distribution)

二项分布是离散分布。

它描述了二进制方案的结果,例如,抛硬币,它要么是正面要么是反面。

它具有三个参数:

n-试用次数。

p-每次尝试的发生概率(例如,掷硬币0.5次)。

size-返回数组的形状。

离散分布:分布是在单独的一组事件中定义的,例如 投掷硬币的结果是离散的,因为它只能是头或尾,而人的身高是连续的,可以是170、170.1、170.11,依此类推。

例如:

给定10次抛硬币试验,可产生10个数据点:

from numpy import random

x = random.binomial(n=10, p=0.5, size=10)

print(x)

2、二项分布的可视化

例如: 

from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns

sns.distplot(random.binomial(n=10, p=0.5, size=1000), hist=True, kde=False)

plt.show()

Result

httpswwwcjavapycom

3、正态分布与二项分布的区别

主要区别在于正态分布是连续的,而二项式是离散的,但是如果有足够的数据点,它将与具有特定位置和范围的正态分布非常相似。

例如: 

from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns

sns.distplot(random.normal(loc=50, scale=5, size=1000), hist=False, label='normal')
sns.distplot(random.binomial(n=100, p=0.5, size=1000), hist=False, label='binomial')

plt.show()

Result

httpswwwcjavapycom

推荐文档