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双向链表实现实例代码
Nov 21 Python
python迭代器的使用方法实例
Nov 21 Python
python生成器generator用法实例分析
Jun 04 Python
python实现的正则表达式功能入门教程【经典】
Jun 05 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
Apr 28 Python
如何运行.ipynb文件的图文讲解
Jun 27 Python
更新pip3与pyttsx3文字语音转换的实现方法
Aug 08 Python
Python常用模块os.path之文件及路径操作方法
Dec 03 Python
Python图像处理库PIL中图像格式转换的实现
Feb 26 Python
python判断元素是否存在的实例方法
Sep 24 Python
Pycharm安装python库的方法
Nov 24 Python
Python 把两层列表展开平铺成一层(5种实现方式)
Apr 07 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正则替换处理HTML页面的方法
2015/06/17 PHP
日常整理PHP中简单的图形处理(经典)
2015/10/26 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
准确获得页面、窗口高度及宽度的JS
2006/11/26 Javascript
Javascript日期对象的dateAdd与dateDiff方法
2008/11/18 Javascript
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
跟我学习javascript的undefined与null
2015/11/17 Javascript
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
微信小程序之获取当前位置经纬度以及地图显示详解
2017/05/09 Javascript
详解Vue路由开启keep-alive时的注意点
2017/06/20 Javascript
JS动态修改网页body的背景色实例代码
2017/10/07 Javascript
[55:16]Mski vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
Python 获取当前所在目录的方法详解
2017/08/02 Python
详解Python中如何写控制台进度条的整理
2018/03/07 Python
使用numpy和PIL进行简单的图像处理方法
2018/07/02 Python
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
Django框架封装外部函数示例
2019/05/28 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
python多线程分块读取文件
2019/08/29 Python
python Canny边缘检测算法的实现
2020/04/24 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
使用CSS3的font-face字体嵌入样式的方法讲解
2016/05/13 HTML / CSS
高中毕业自我鉴定
2013/12/16 职场文书
超市中秋节活动方案
2014/02/12 职场文书
挂科检讨书范文
2014/02/20 职场文书
十佳护士先进事迹
2014/05/08 职场文书
六五普法宣传标语
2014/10/06 职场文书
2015年毕业生自荐信范文
2015/03/24 职场文书
公司开除员工通知
2015/04/22 职场文书
2019年“红色之旅”心得体会1000字(3篇)
2019/09/27 职场文书
基于Golang 高并发问题的解决方案
2021/05/08 Golang
Python 阶乘详解
2021/10/05 Python
TV动画「神渣☆爱豆」公开第一弹主视觉图
2022/03/21 日漫