Python实现的概率分布运算操作示例


Posted in Python onAugust 14, 2017

本文实例讲述了Python实现的概率分布运算操作。分享给大家供大家参考,具体如下:

1. 二项分布(离散)

import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
'''
# 二项分布 (binomial distribution)
# 前提:独立重复试验、有放回、只有两个结果
# 二项分布指出,随机一次试验出现事件A的概率如果为p,那么在重复n次试验中出现k次事件A的概率为:
# f(n,k,p) = choose(n, k) * p**k * (1-p)**(n-k)
'''
# ①定义二项分布的基本信息
p = 0.4 # 事件A概率0.4
n = 5  # 重复实验5次
k = np.arange(n+1) # 6种可能出现的结果
#k = np.linspace(stats.binom.ppf(0.01,n,p), stats.binom.ppf(0.99,n,p), n+1) #另一种方式
# ②计算二项分布的概率质量分布 (probability mass function)
# 之所以称为质量,是因为离散的点,默认体积(即宽度)为1
# P(X=x) --> 是概率
probs = stats.binom.pmf(k, n, p)
#array([ 0.07776, 0.2592 , 0.3456 , 0.2304 , 0.0768 , 0.01024])
#plt.plot(k, probs)
# ③计算二项分布的累积概率 (cumulative density function)
# P(X<=x) --> 也是概率
cumsum_probs = stats.binom.cdf(k, n, p)
#array([ 0.07776, 0.33696, 0.68256, 0.91296, 0.98976, 1.   ])
# ④根据累积概率得到对应的k,这里偷懒,直接用了上面的cumsum_probs
k2 = stats.binom.ppf(cumsum_probs, n, p)
#array([0, 1, 2, 3, 4, 5])
# ⑤伪造符合二项分布的随机变量 (random variates)
X = stats.binom.rvs(n,p,size=20)
#array([2, 3, 1, 2, 2, 2, 1, 2, 2, 3, 3, 0, 1, 1, 1, 2, 3, 4, 0, 3])
#⑧作出上面满足二项分布随机变量的频数直方图(类似group by)
plt.hist(X)
#⑨作出上面满足二项分布随机变量的频率分布直方图
plt.hist(X, normed=True)
plt.show()

2. 正态分布(连续)

'''
标准正态分布
密度函数:f(x) = exp(-x**2/2)/sqrt(2*pi)
'''
x = np.linspace(stats.norm.ppf(0.01), stats.norm.ppf(0.99), 100)
# 概率密度分布函数(Probability density function)
# 之所以称为密度,是因为连续的点,默认体积为0
# f(x) --> 不是概率
probs = norm.pdf(x)
# plt.plot(x, probs, 'r-', lw=5, alpha=0.6, label='norm pdf')
# 累积概率密度函数 Cumulative density function
# 定积分 ∫_-oo^a f(x)dx --> 是概率
cumsum_probs = stats.norm.cdf(x)
# 伪造符合正态分布的随机变量X
# 通过loc和scale参数可以指定随机变量的偏移和缩放参数。对于正态分布的随机变量来说,这两个参数相当于指定其期望值和标准差:
X = stats.norm.rvs(loc=1.0, scale=2.0, size=1000)
#⑨作出上面正态分布随机变量的频率分布直方图
plt.hist(X, normed=True, histtype='stepfilled', alpha=0.2)
plt.legend(loc='best', frameon=False)
plt.show()
# 对给定的数据进行参数估计。这里偷懒了,就用上面的X
mean, std = stats.norm.fit(X)
#array(1.01810091), array(2.00046946)

附:NumPy、SciPy与MatPlotLib模块下载地址:

NumPy: http://sourceforge.net/projects/numpy/files/NumPy/1.9.2/
SciPy: http://sourceforge.net/projects/scipy/files/scipy/0.15.1/
MatPlotLib: http://matplotlib.org/downloads.html

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
详解Python的Lambda函数与排序
Oct 25 Python
Django卸载之后重新安装的方法
Mar 15 Python
Python日期时间对象转换为字符串的实例
Jun 22 Python
python pands实现execl转csv 并修改csv指定列的方法
Dec 12 Python
使用python list 查找所有匹配元素的位置实例
Jun 11 Python
Python 获取windows桌面路径的5种方法小结
Jul 15 Python
学python安装的软件总结
Oct 12 Python
Python matplotlib以日期为x轴作图代码实例
Nov 22 Python
关于pandas的离散化,面元划分详解
Nov 22 Python
python pygame实现挡板弹球游戏
Nov 25 Python
jupyter 导入csv文件方式
Apr 21 Python
TensorFlow Autodiff自动微分详解
Jul 06 Python
python itchat实现微信好友头像拼接图的示例代码
Aug 14 #Python
python的mysqldb安装步骤详解
Aug 14 #Python
python制作小说爬虫实录
Aug 14 #Python
python安装Scrapy图文教程
Aug 14 #Python
基于python时间处理方法(详解)
Aug 14 #Python
关于Django外键赋值问题详解
Aug 13 #Python
python爬虫实战之最简单的网页爬虫教程
Aug 13 #Python
You might like
PHP学习笔记之session
2018/05/06 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
javascript Onunload与Onbeforeunload使用小结
2009/12/31 Javascript
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
2010/11/21 Javascript
Javascript模块化编程(三)require.js的用法及功能介绍
2013/01/17 Javascript
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
2013/12/11 Javascript
JS动态加载当前时间的方法
2015/02/09 Javascript
JavaScript三元运算符的多种使用技巧
2015/04/16 Javascript
Javascript中typeof 用法小结
2015/05/12 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
走进AngularJs之过滤器(filter)详解
2017/02/17 Javascript
JS执行控制之节流模式实例分析
2018/12/21 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
json解析大全 双引号、键值对不在一起的情况
2019/12/06 Javascript
Python科学计算之Pandas详解
2017/01/15 Python
使用Python操作excel文件的实例代码
2017/10/15 Python
浅谈Python中带_的变量或函数命名
2017/12/04 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
2018/05/09 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
html5 button autofocus 属性介绍及应用
2013/01/04 HTML / CSS
canvas实现扭蛋机动画效果的示例代码
2018/10/17 HTML / CSS
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
老师推荐信
2013/10/28 职场文书
大学生求职推荐信
2013/11/27 职场文书
高三体育教学反思
2014/01/29 职场文书
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
潘婷洗发水广告词
2014/03/14 职场文书
区域销售主管岗位职责
2014/06/15 职场文书
旷课检讨书范文
2014/10/30 职场文书
2016春节家属慰问信
2015/03/25 职场文书
婚宴主持词
2015/06/30 职场文书
2016入党积极分子心得体会
2016/01/06 职场文书
使用CSS连接数据库的方式
2022/02/28 HTML / CSS
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs