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实现apahce网站日志分析示例
Apr 02 Python
python3实现短网址和数字相互转换的方法
Apr 28 Python
Python 删除连续出现的指定字符的实例
Jun 29 Python
Python实现的多叉树寻找最短路径算法示例
Jul 30 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
Nov 14 Python
Python中一般处理中文的几种方法
Mar 06 Python
pycharm不能运行.py文件的解决方法
Feb 12 Python
使用Python内置模块与函数进行不同进制的数的转换
Apr 26 Python
解决python虚拟环境切换无效的问题
Apr 30 Python
使用pyplot.matshow()函数添加绘图标题
Jun 16 Python
python如何使用代码运行助手
Jul 03 Python
在Pycharm中安装Pandas库方法(简单易懂)
Feb 20 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 学习路线与时间表
2010/02/21 PHP
php长字符串定义方法
2012/07/12 PHP
PHP类的反射用法实例
2014/11/03 PHP
php的mssql数据库连接类实例
2014/11/28 PHP
Android AsyncTack 异步任务实例详解
2016/11/02 PHP
jQuery的slideToggle方法实例
2013/05/07 Javascript
js添加table的行和列 具体实现方法
2013/07/22 Javascript
jquery弹出框的用法示例(一)
2013/08/26 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
JavaScript中的闭包介绍
2015/03/15 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
2015/08/21 Javascript
jQuery添加和删除输入文本框标签代码
2016/05/20 Javascript
JS上传图片预览插件制作(兼容到IE6)
2016/08/07 Javascript
React创建组件的三种方式及其区别
2017/01/12 Javascript
js实现随机数字字母验证码
2017/06/19 Javascript
浅谈vue 单文件探索
2018/09/05 Javascript
简述pm2常用命令集合及配置文件说明
2019/05/30 Javascript
基于jQuery实现挂号平台首页源码
2020/01/06 jQuery
JS实现电商商品展示放大镜特效
2020/01/07 Javascript
Python Web框架Pylons中使用MongoDB的例子
2013/12/03 Python
编写Python爬虫抓取暴走漫画上gif图片的实例分享
2016/04/20 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
2017/04/14 Python
用python处理MS Word的实例讲解
2018/05/08 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
python实现梯度下降法
2020/03/24 Python
Canvas多边形绘制的实现方法
2019/08/05 HTML / CSS
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
机关财务管理制度
2014/01/17 职场文书
教师开学感言
2014/02/14 职场文书
公司年会抽奖活动主持词
2014/03/31 职场文书
离婚纠纷代理词
2015/05/23 职场文书
2016党校培训心得体会
2016/01/07 职场文书
python 下载文件的几种方式分享
2021/04/07 Python
简述Java中throw-throws异常抛出
2021/08/07 Java/Android
python实现双向链表原理
2022/05/25 Python