本文主要描述概率分布的python實(shí)現(xiàn)方法哆档,包括二項(xiàng)分布、伯努利分布淆两、泊松分布断箫、幾何分布、正態(tài)分布等秋冰。
import numpy as np
import matplotlib.pyplot as plt
一仲义、二項(xiàng)分布
步驟:
1.定義隨機(jī)變量X
2.計(jì)算概率
3.繪制概率分布圖
# 1.定義隨機(jī)變量:5次拋硬幣,正面向上的次數(shù)(概率為0.5)
n1 = 5
p1 = 0.5
X1 = np.arange(0,n1+1,1)
# 2. 求概率質(zhì)量函數(shù)
pList1 = stats.binom.pmf(X1,n1,p1) #返回一個(gè)列表剑勾,列表中每個(gè)元素表示隨機(jī)變量中對(duì)應(yīng)值的概率
#繪圖
plt.plot(X1,pList1,marker='o',linestyle='None')
plt.vlines(X1, 0, pList1)
#plt.xlim(0.5,5.5)
#plt.ylim(0,1)
plt.axis([0.5, 5.5, 0, 0.8])
plt.xlabel('隨機(jī)變量:正面向上次數(shù)')
plt.ylabel('概率')
plt.title('二項(xiàng)分布:n=%i,p=%.2f' %(n1,p1))
plt.show()
二埃撵、伯努利分布
步驟:
1.定義隨機(jī)變量X
2.計(jì)算概率
3.繪制概率分布圖
#1'定義隨機(jī)變量:1次拋硬幣,成功正面向上計(jì)為1虽另,失敗反面向上計(jì)為0(概率為0.5)
p2 = 0.5
n2 = 1
X2 = np.arange(0,n2+1,1)
#2. 求概率質(zhì)量函數(shù)
pList2 = stats.bernoulli.pmf(X2, p2)
# 3 繪圖
plt.plot(X2, pList2, marker='o',linestyle='None')
plt.vlines(X2, 0, pList2)
#plt.ylim(0,1)
plt.axis([-0.5, 1.5, 0, 0.8])
#設(shè)置坐標(biāo)軸間隔為1
x_major_locator=MultipleLocator(1)
ax=plt.gca()
ax.xaxis.set_major_locator(x_major_locator)
plt.xlabel('隨機(jī)變量:拋硬幣1次')
plt.ylabel('概率')
plt.title('伯努利分布:p=%.2f' % p2)
plt.show()
三暂刘、泊松分布
#某商店門口1分鐘經(jīng)過n個(gè)人的概率
mu=2
n3=4
X3=np.arange(0,n3+1,1)
pList3=stats.poisson.pmf(X3,mu)
plt.plot(X3,pList3,marker='o',linestyle='None')
plt.vlines(X3,0,pList3)
plt.axis([0.5, 4.5, 0, 0.5])
#設(shè)置坐標(biāo)軸間隔為1
x_major_locator=MultipleLocator(1)
ax=plt.gca()
ax.xaxis.set_major_locator(x_major_locator)
plt.xlabel('隨機(jī)變量:某商店門口1分鐘經(jīng)過n個(gè)人')
plt.ylabel('概率')
plt.title('泊松分布:平均值mu=%i' % mu)
plt.show()
四、幾何分布
步驟:
1.定義隨機(jī)變量X
2.計(jì)算概率
3.繪制概率分布圖
# 1. 定義隨機(jī)變量:投球進(jìn)籃筐的概率
#5次投球才進(jìn)框的概率
n4 = 5
#假定每次入籃概率為40%
p4 =0.4
X4 = np.arange(0,n4+1,1)
# 2 概率函數(shù)
pList4 = stats.geom.pmf(X4,p4)
# 3 繪圖
plt.plot(X4,pList4,marker='o',linestyle='None')
plt.vlines(X4,0,pList4)
plt.axis([0.5, 5.5, 0, 0.5])
#設(shè)置坐標(biāo)軸間隔為1
x_major_locator=MultipleLocator(1)
ax=plt.gca()
ax.xaxis.set_major_locator(x_major_locator)
plt.xlabel('隨機(jī)變量:投n次球才入籃')
plt.ylabel('概率')
plt.title('幾何分布:概率p=%.2f' %p4)
plt.show()
五捂刺、正態(tài)分布
#1 繪制一個(gè)均值為0 標(biāo)準(zhǔn)差為1 的正態(tài)分布
u = 0
sigma = 1
X4 = np.arange(-5 ,5 ,0.1)
#2 概率密度函數(shù)
y=stats.norm.pdf(X4,u,sigma)
plt.plot(X4, y)
plt.xlabel('隨機(jī)變量:x')
plt.ylabel('概率:y')
plt.title('正態(tài)分布:u=%.1f, sigma^2=%.1f' % (u,sigma))
plt.show()