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 相关文章推荐
python图像处理之镜像实现方法
May 30 Python
python查找指定具有相同内容文件的方法
Jun 28 Python
pycharm远程linux开发和调试代码的方法
Jul 17 Python
numpy.where() 用法详解
May 27 Python
3种python调用其他脚本的方法
Jan 06 Python
python异常处理try except过程解析
Feb 03 Python
基于python实现操作git过程代码解析
Jul 27 Python
pycharm 2020 1.1的安装流程
Sep 29 Python
Python析构函数__del__定义原理解析
Nov 20 Python
深入探讨opencv图像矫正算法实战
May 21 Python
如何利用Python实现一个论文降重工具
Jul 09 Python
Python如何解决secure_filename对中文不支持问题
Jul 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
德劲1103二次变频版的打磨
2021/03/02 无线电
把PHP安装为Apache DSO
2006/10/09 PHP
PHP Document 代码注释规范
2009/04/13 PHP
PHP strtok()函数的优点分析
2010/03/02 PHP
PHP安全的URL字符串base64编码和解码
2014/06/19 PHP
PHP实现合并discuz用户
2015/08/05 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
2016/11/07 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
解决FLASH需要点击激活的代码
2006/12/20 Javascript
javascript基础之查找元素的详细介绍(访问节点)
2013/07/05 Javascript
JS求平均值的小例子
2013/11/29 Javascript
Javascript学习笔记之相等符号与严格相等符号
2014/11/23 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
angular实现商品筛选功能
2017/02/01 Javascript
JavaScript中object和Object的区别(详解)
2017/02/27 Javascript
Angular实现表单验证功能
2017/11/13 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
Vue.js 实现数据展示全部和收起功能
2018/09/05 Javascript
js实现动态增加文件域表单功能
2018/10/22 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
[06:07]DOTA2-DPC中国联赛3月5日Recap集锦
2021/03/11 DOTA
Python中getattr函数和hasattr函数作用详解
2016/06/14 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
python版本单链表实现代码
2018/09/28 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
2018/11/14 Python
PHP统计代码行数的小代码
2019/09/19 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
浅谈在JupyterNotebook下导入自己的模块的问题
2020/04/16 Python
python 代码运行时间获取方式详解
2020/09/18 Python
美国领先的宠物用品和宠物食品零售商:Petco
2020/10/28 全球购物
求职简历自荐信范文
2013/10/21 职场文书
书法大赛策划方案
2014/06/04 职场文书
甜品店创业计划书
2014/08/14 职场文书
2015年学生资助工作总结
2015/05/25 职场文书
mybatis 解决从列名到属性名的自动映射失败问题
2021/06/30 Java/Android
Java线程的6种状态与生命周期
2022/05/11 Java/Android