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实现拼接多张图片的方法
Dec 01 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
Jul 28 Python
python 多维切片之冒号和三个点的用法介绍
Apr 19 Python
python3读取csv和xlsx文件的实例
Jun 22 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
Nov 07 Python
python读取xlsx的方法
Dec 25 Python
打包python 加icon 去掉cmd黑窗口方法
Jun 24 Python
用python建立两个Y轴的XY曲线图方法
Jul 08 Python
Django 拆分model和view的实现方法
Aug 16 Python
Django数据结果集序列化并展示实现过程
Apr 22 Python
python 使用raw socket进行TCP SYN扫描实例
May 05 Python
Python 爬虫性能相关总结
Aug 03 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
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
php session 错误
2009/05/21 PHP
PHP中PDO事务处理操作示例
2018/05/02 PHP
关于Aptana Studio生成自动备份文件的解决办法
2009/12/23 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
基于jquery异步传输json数据格式实例代码
2013/11/23 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
JavaScript实现把rgb颜色转换成16进制颜色的方法
2015/06/01 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
vue的toast弹窗组件实例详解
2018/05/14 Javascript
vue生成token并保存到本地存储中
2018/07/17 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
JavaScript Array对象基本方法详解
2019/09/03 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
Python实现的生成自我描述脚本分享(很有意思的程序)
2014/07/18 Python
Python中str is not callable问题详解及解决办法
2017/02/10 Python
Python做简单的字符串匹配详解
2017/03/21 Python
ActiveMQ:使用Python访问ActiveMQ的方法
2019/01/30 Python
对pyqt5之menu和action的使用详解
2019/06/20 Python
Django基础知识 URL路由系统详解
2019/07/18 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
解决Numpy中sum函数求和结果维度的问题
2019/12/06 Python
Html5页面上如何禁止手机虚拟键盘弹出
2020/03/19 HTML / CSS
英国排名第一的餐具品牌:Denby Pottery
2019/11/01 全球购物
怎么写好自荐信
2013/10/30 职场文书
师范毕业生个人求职信
2013/12/09 职场文书
合作意向协议书范本
2014/03/31 职场文书
公司感恩节活动策划书
2014/10/11 职场文书
初中政教处工作总结
2015/08/12 职场文书
python实现求纯色彩图像的边框
2021/04/08 Python
《游戏王:大师决斗》新活动上线 若无符合卡组可免费租用
2022/04/13 其他游戏
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL