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基于BeautifulSoup实现抓取网页指定内容的方法
Jul 09 Python
轻量级的Web框架Flask 中模块化应用的实现
Sep 11 Python
Python爬虫实例爬取网站搞笑段子
Nov 08 Python
详解用Python处理HTML转义字符的5种方式
Dec 27 Python
python调用百度语音识别实现大音频文件语音识别功能
Aug 30 Python
python使用pipeline批量读写redis的方法
Feb 18 Python
python3.6实现学生信息管理系统
Feb 21 Python
pandas基于时间序列的固定时间间隔求均值的方法
Jul 04 Python
django url到views参数传递的实例
Jul 19 Python
python函数的万能参数传参详解
Jul 26 Python
python 二维矩阵转三维矩阵示例
Nov 30 Python
pandas求平均数和中位数的方法实例
Aug 04 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&MYSQL服务器配置说明
2006/10/09 PHP
php mssql 时间格式问题
2009/01/13 PHP
PHP 基本语法格式
2009/12/15 PHP
linux下删除7天前日志的代码(php+shell)
2011/01/02 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
得到jQuery detach()后节点中的某个值实现代码
2013/02/05 Javascript
怎么清空javascript数组
2013/05/11 Javascript
Nodejs极简入门教程(一):模块机制
2014/10/25 NodeJs
基于jQuery实现左右图片轮播(原理通用)
2015/12/24 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
Bootstrap导航条鼠标悬停下拉菜单
2017/01/04 Javascript
详解element-ui中form验证杂记
2019/03/04 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
js最实用string(字符串)类型的使用及截取与拼接详解
2019/04/26 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
2019/09/23 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
2019/12/04 Javascript
简单了解JS打开url的方法
2020/02/21 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
[01:55]TI9显影之尘系列 - Evil Geniuses
2019/08/22 DOTA
Python如何实现守护进程的方法示例
2017/02/08 Python
Python之多线程爬虫抓取网页图片的示例代码
2018/01/10 Python
Python 机器学习库 NumPy入门教程
2018/04/19 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
2018/06/05 Python
Python编写合并字典并实现敏感目录的小脚本
2019/02/26 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
2019/06/27 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
2019/08/12 Python
Python Http请求json解析库用法解析
2020/11/28 Python
优秀班集体获奖感言
2014/02/03 职场文书
班委竞选演讲稿
2014/04/28 职场文书
社保委托书怎么写
2014/08/02 职场文书
思想作风整顿个人剖析材料
2014/10/06 职场文书
庆七一宣传标语
2014/10/08 职场文书
办公室主任个人对照检查材料思想汇报
2014/10/11 职场文书
2015重阳节敬老活动总结
2015/07/29 职场文书
Python实现视频自动打码的示例代码
2022/04/08 Python
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers