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实现过滤单个Android程序日志脚本分享
Jan 16 Python
解决项目pycharm能运行,在终端却无法运行的问题
Jan 19 Python
使用python实现mqtt的发布和订阅
May 05 Python
用vue.js组件模拟v-model指令实例方法
Jul 05 Python
python对常见数据类型的遍历解析
Aug 27 Python
Python如何获取Win7,Win10系统缩放大小
Jan 10 Python
python生成任意频率正弦波方式
Feb 25 Python
Python如何使用OS模块调用cmd
Feb 27 Python
Python OpenCV去除字母后面的杂线操作
Jul 05 Python
Python如何创建装饰器时保留函数元信息
Aug 07 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
Dec 16 Python
python接口自动化框架实战
Dec 23 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+JS实现搜索自动提示(实例)
2013/06/09 PHP
PHP与Java进行通信的实现方法
2013/10/21 PHP
PHP中使用smarty生成静态文件的例子
2014/04/24 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
PHP中include()与require()的区别说明
2017/02/14 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
背景图跟随鼠标移动的Mootools插件实现代码
2011/12/12 Javascript
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
javascript获取dom的下一个节点方法
2014/09/05 Javascript
jquery判断iPhone、Android设备类型
2016/09/14 Javascript
Bootstrap中点击按钮后变灰并显示加载中实例代码
2016/09/23 Javascript
ES6生成器用法实例分析
2017/04/10 Javascript
微信小程序中多个页面传参通信的学习与实践
2017/05/05 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
2018/01/02 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
python有证书的加密解密实现方法
2014/11/19 Python
python使用mailbox打印电子邮件的方法
2015/04/30 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
2017/05/18 Python
python和flask中返回JSON数据的方法
2018/03/26 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
python实现飞机大战微信小游戏
2020/03/21 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
2019/01/17 Python
Python2及Python3如何实现兼容切换
2020/09/01 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
2020/11/02 Python
用canvas显示验证码的实现
2020/04/10 HTML / CSS
美国网上眼镜商城:Zenni Optical
2016/11/20 全球购物
瑞典香水、须后水和美容产品购物网站:Parfym-Klick.se
2019/12/29 全球购物
外贸主管求职简历的自我评价
2013/10/23 职场文书
自我评价优秀范文分享
2013/11/30 职场文书
硕士研究生自我鉴定范文
2013/12/27 职场文书
眼镜促销方案
2014/03/15 职场文书
北京申奥口号
2014/06/19 职场文书
小学阳光体育活动总结
2014/07/05 职场文书
质量保证书怎么写
2015/02/27 职场文书
浅谈Python基础之列表那些事儿
2021/05/11 Python