# 2、二项分布

from scipy.special import perm
from scipy.special import comb

plt.figure(figsize=(16,8),dpi=98)
p1 = plt.subplot(121)
p2 = plt.subplot(122)
#p1 = plt.subplot(121,aspect=5/2.5)
#p2 = plt.subplot(122,aspect=0.5/0.05)

I = range(30)
mu = 10
pi = [np.exp(-mu)*mu**i/np.math.factorial(i) for i in I]
p1.plot(I, pi, 'r')

def plotnp(pindex,n, mu, style, lable):
p = 1.0*mu/n
b = [comb(n,i)*p**i*(1-p)**(n-i) for i in I]
pindex.plot(I, b, style, label=lable,linewidth=2)

plotnp(p1,50, 10, 'b--', 'n=50')
plotnp(p1,100, 10, 'g-.', 'n=100')
plotnp(p1,200, 10, 'b-.', 'n=200')
plotnp(p1,1000, 10, 'g:', 'n=1000')
p1.legend()
# plot the box
tx0 = 7
tx1 = 13
ty0 = 0.1
ty1 = 0.15
sx = [tx0,tx1,tx1,tx0,tx0]
sy = [ty0,ty0,ty1,ty1,ty0]
p1.plot(sx,sy,"purple")

I = range(7,13)
pi = [np.exp(-mu)*mu**i/np.math.factorial(i) for i in I]
p2.plot(I, pi, 'r')

plotnp(p2,50, 10, 'b--', 'n=50')
plotnp(p2,100, 10, 'g-.', 'n=100')
plotnp(p2,200, 10, 'b-.', 'n=200')
plotnp(p2,1000, 10, 'g:', 'n=1000')
p2.legend()

xy=(13,0.12)
xy2 = (6.9,0.125)
con = ConnectionPatch(xyA=xy2,xyB=xy,coordsA="data",coordsB="data",
axesA=p2,axesB=p1)

plt.show()

# 3、正态分布

import numpy as np

def fun(x, mu=0, sigma=1):
return 1.0/(np.sqrt(2*np.pi)*sigma)*np.exp(-(x-mu)**2/(2*(sigma**2)))

mu = 50
x = np.linspace(0,2*mu,2*mu)

plt.plot(x, fun(x,mu, np.sqrt(mu)))

I = range(2*mu)
pi = [np.exp(-mu)*mu**i/np.math.factorial(i) for i in I]
plt.plot(I, pi, 'r')
plt.show()

# 5、二维正态分布

fig = plt.figure()
ax = Axes3D(fig)

x, y = np.mgrid[-5:5:.1, -5:5:.1]
pos = np.empty(x.shape + (2,))
print pos.shape
pos[:, :, 0] = x; pos[:, :, 1] = y
# 函数参数是均值[0,0]，与协方差矩阵[[2.0, 0.3], [0.3, 0.5]]
rv = multivariate_normal([0, 0], [[2.0, 0.3], [0.3, 0.5]])
ax.contourf(x, y, rv.pdf(pos),zdir='z',offset=0)
ax.plot_surface(x, y, rv.pdf(pos)+0.1, rstride=1, cstride=1, cmap=plt.cm.RdBu)
plt.show()

mu = 0
sigma = 1
x = np.arange(-5,5,0.1)
y = stats.norm.pdf(x, mu, sigma)
plt.plot(x,y)
plt.title("Normal:$\mu$=%.1f, $\sigma^2$=%.1f" %(mu,sigma))
plt.xlabel("x")
plt.show()
from scipy import stats

n =10
p =0.3
k = np.arange(0,21)
binomial = stats.binom.pmf(k,n,p)
plt.plot(k, binomial)
plt.show()
binom_sim = stats.binom.rvs(n=10,p=0.3, size = 1000)
#print binom_sim
print "Mean:%g"%np.mean(binom_sim)
print "SD:%g"%np.std(binom_sim, ddof=1)
# 这里 hist 函数的输入参数有 ages 数组、直方图的 bins 数目（即区间数，这里为 20），
# 同时，还使用了 normed=True 参数来正则化直方图，即让每个方条表示年龄在该区间内的数量占总数量的比[1]  。

plt.hist(binom_sim, bins = 10, normed= 0)
plt.xlabel("x")
plt.ylabel("density")
plt.show()

0 条评论

• ### caffe随记（五）---/build/tools/caffe.bin工具简析

1、怎么用这个命令 在caffe根目录下输入如下命令：  ./build/tools/caffe.bin, 得到如下显示 ? usage：caffe<comm...

• ### 全屏、沉浸式、fitSystemWindow使用及原理分析：全方位控制“沉浸式”的实现

状态栏与导航栏属于SystemUi的管理范畴，虽然界面的UI会受到SystemUi的影响，但是，APP并没有直接绘制SystemUI的权限与必要。APP端之所以...

• ### ​Substrate 环境安装提速文档

Substrate 环境安装提速文档（Mike版，仅限Debian/Ubuntu Linux 和 Mac brew）

• ### 通过新的Salesforce App for Outlook提高工作效率

作为微软的合作伙伴，我们共同开发了超过10多项新的集成功能来让客户更加成功。今天，我们非常兴奋的宣布我们已经通过Salesforce App for Outlo...

• ### Python的解码和编码

使用Python语言做网络爬虫或者写自动化脚本时，总会遇到“中文乱码”的问题，很是头疼。很多“中文乱码”的问题是跟Python的解码/编码有关，所以今天和大家说...