Python处理PDF与CDF实例


Posted in Python onFebruary 26, 2020

在拿到数据后,最需要做的工作之一就是查看一下自己的数据分布情况。而针对数据的分布,又包括pdf和cdf两类。

下面介绍使用python生成pdf的方法:

使用matplotlib的画图接口hist(),直接画出pdf分布;

使用numpy的数据处理函数histogram(),可以生成pdf分布数据,方便进行后续的数据处理,比如进一步生成cdf;

使用seaborn的distplot(),好处是可以进行pdf分布的拟合,查看自己数据的分布类型;

Python处理PDF与CDF实例

上图所示为采用3种算法生成的pdf图。下面是源代码。

from scipy import stats
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

arr = np.random.normal(size=100)

# plot histogram
plt.subplot(221)
plt.hist(arr)

# obtain histogram data
plt.subplot(222)
hist, bin_edges = np.histogram(arr)
plt.plot(hist)

# fit histogram curve
plt.subplot(223)
sns.distplot(arr, kde=False, fit=stats.gamma, rug=True)
plt.show()

下面介绍使用python生成cdf的方法:

使用numpy的数据处理函数histogram(),生成pdf分布数据,进一步生成cdf;

使用seaborn的cumfreq(),直接画出cdf;

Python处理PDF与CDF实例

上图所示为采用2种算法生成的cdf图。下面是源代码。

from scipy import stats
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

arr = np.random.normal(size=100)

plt.subplot(121)
hist, bin_edges = np.histogram(arr)
cdf = np.cumsum(hist)
plt.plot(cdf)

plt.subplot(122)
cdf = stats.cumfreq(arr)
plt.plot(cdf[0])

plt.show()

在更多时候,需要把pdf和cdf放在一起,可以更好的显示数据分布。这个实现需要把pdf和cdf分别进行归一化。

Python处理PDF与CDF实例

上图所示为归一化的pdf和cdf。下面是源代码。

from scipy import stats
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

arr = np.random.normal(size=100)

hist, bin_edges = np.histogram(arr)
width = (bin_edges[1] - bin_edges[0]) * 0.8
plt.bar(bin_edges[1:], hist/max(hist), width=width, color='#5B9BD5')

cdf = np.cumsum(hist/sum(hist))
plt.plot(bin_edges[1:], cdf, '-*', color='#ED7D31')

plt.xlim([-2, 2])
plt.ylim([0, 1])
plt.grid()

plt.show()

以上这篇Python处理PDF与CDF实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Django的session中对于用户验证的支持
Jul 23 Python
jupyter安装小结
Mar 13 Python
Python 正则表达式实现计算器功能
Apr 29 Python
python发送邮件实例分享
Jul 28 Python
Python基础学习之常见的内建函数整理
Sep 06 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
Jun 11 Python
python实现监控某个服务 服务崩溃即发送邮件报告
Jun 21 Python
python 去除二维数组/二维列表中的重复行方法
Jan 23 Python
python代码编写计算器小程序
Mar 30 Python
在django中实现页面倒数几秒后自动跳转的例子
Aug 16 Python
PyCharm永久激活方式(推荐)
Sep 22 Python
python根据字典的键来删除元素的方法
Aug 16 Python
用Python绘制漫步图实例讲解
Feb 26 #Python
Django单元测试中Fixtures的使用方法
Feb 26 #Python
python 解压、复制、删除 文件的实例代码
Feb 26 #Python
Python递归调用实现数字累加的代码
Feb 25 #Python
python烟花效果的代码实例
Feb 25 #Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
Feb 25 #Python
使用python绘制cdf的多种实现方法
Feb 25 #Python
You might like
PHP实现单例模式建立数据库连接的方法分析
2020/02/11 PHP
基于jquery1.4.2的仿flash超炫焦点图播放效果
2010/04/20 Javascript
jquery显示和隐藏div特效实例
2013/02/27 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
2013/05/17 Javascript
html dom节点操作(获取/修改/添加或删除)
2014/01/23 Javascript
js数组去重的常用方法总结
2014/01/24 Javascript
用jquery实现的一个超级简单的下拉菜单
2014/05/18 Javascript
JavaScript中的ArrayBuffer详细介绍
2014/12/08 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
2015/11/25 Javascript
js实现无缝滚动特效
2015/12/20 Javascript
实例讲解JavaScript中instanceof运算符的用法
2016/06/08 Javascript
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
2018/02/11 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
2020/06/15 Javascript
Python向日志输出中添加上下文信息
2017/05/24 Python
python读取excel指定列数据并写入到新的excel方法
2018/07/10 Python
python 3.7.0 下pillow安装方法
2018/08/27 Python
Python考拉兹猜想输出序列代码实践
2019/07/05 Python
python实现对图片进行旋转,放缩,裁剪的功能
2019/08/07 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
Python csv模块使用方法代码实例
2019/08/29 Python
Django实现将一个字典传到前端显示出来
2020/04/03 Python
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
canvas实现扭蛋机动画效果的示例代码
2018/10/17 HTML / CSS
ASOS亚洲:ASOS Asia
2018/03/04 全球购物
澳大利亚领先的优质葡萄酒拍卖会:Langton’s Fine Wines
2019/03/24 全球购物
高一新生军训感言
2014/03/02 职场文书
道德之星事迹材料
2014/05/03 职场文书
经济贸易专业自荐信
2014/06/11 职场文书
新闻发布会策划方案
2014/06/12 职场文书
会计岗位说明书
2014/07/29 职场文书
幼儿园迎新生欢迎词
2015/09/30 职场文书
禁毒心得体会范文
2016/01/15 职场文书
2016年小学中秋节活动总结
2016/04/05 职场文书