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中使用装饰器来优化尾递归的示例
Jun 18 Python
python中reload(module)的用法示例详解
Sep 15 Python
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
Feb 18 Python
浅谈python中requests模块导入的问题
May 18 Python
深入浅析Python 中 is 语法带来的误解
May 07 Python
python修改字典键(key)的方法
Aug 05 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
Aug 27 Python
python 利用已有Ner模型进行数据清洗合并代码
Dec 24 Python
TensorFlow加载模型时出错的解决方式
Feb 06 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
Sep 14 Python
使用python操作lmdb对数据读取的实例
Dec 11 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
基于mysql的论坛(1)
2006/10/09 PHP
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
微信支付PHP SDK ―― 公众号支付代码详解
2016/09/13 PHP
jquery imgareaselect 使用利用js与程序结合实现图片剪切
2009/07/30 Javascript
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
2013/02/25 Javascript
Jquery实现自定义弹窗示例
2014/03/12 Javascript
JS将光标聚焦在文本最后的实现代码
2014/03/28 Javascript
一个简单的全屏图片上下打开显示网页效果示例
2014/07/08 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
2015/09/05 Javascript
学习JavaScript设计模式(接口)
2015/11/26 Javascript
jquery中用函数来设置css样式
2016/12/22 Javascript
Vue生命周期示例详解
2017/04/12 Javascript
postman+json+springmvc测试批量添加实例
2018/03/31 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
2018/07/13 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
超详细小程序定位地图模块全系列开发教学
2020/11/24 Javascript
详解Python中内置的NotImplemented类型的用法
2015/03/31 Python
python3新特性函数注释Function Annotations用法分析
2016/07/28 Python
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
Python 虚拟环境工作原理解析
2020/12/24 Python
matplotlib绘制多子图共享鼠标光标的方法示例
2021/01/08 Python
美国时尚孕妇装品牌:A Pea in the Pod
2017/07/16 全球购物
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
中东奢侈品市场:Coveti
2019/05/12 全球购物
廉洁自律演讲稿
2014/05/22 职场文书
学校安全生产承诺书
2014/05/23 职场文书
2015年小学体育工作总结
2015/05/22 职场文书
员工离职证明范本
2015/06/12 职场文书
通讯稿格式及范文
2015/07/22 职场文书
安全生产协议书
2016/03/22 职场文书
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python
python多次执行绘制条形图
2022/04/20 Python
在虚拟机中安装windows server 2008的图文教程
2022/06/28 Servers
在SQL Server中使用 Try Catch 处理异常的示例详解
2022/07/15 SQL Server