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之模拟鼠标键盘动作具体实现
Dec 30 Python
python使用正则表达式检测密码强度源码分享
Jun 11 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
Dec 27 Python
python matplotlib 注释文本箭头简单代码示例
Jan 08 Python
python复制文件到指定目录的实例
Apr 27 Python
python: 自动安装缺失库文件的方法
Oct 22 Python
Python后台管理员管理前台会员信息的讲解
Jan 28 Python
python 控制Asterisk AMI接口外呼电话的例子
Aug 08 Python
Python实现基于socket的udp传输与接收功能详解
Nov 15 Python
python关闭占用端口方式
Dec 17 Python
Python如何爬取b站热门视频并导入Excel
Aug 10 Python
Qt自定义Plot实现曲线绘制的详细过程
Nov 02 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
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
深入理解PHP JSON数组与对象
2016/07/19 PHP
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
JavaScript去掉空格的方法集合
2010/12/28 Javascript
jquery入门—数据删除与隔行变色以及图片预览
2013/01/07 Javascript
JS中showModalDialog 的使用解析
2013/04/17 Javascript
js showModalDialog弹出窗口实例详解
2014/01/07 Javascript
jquery ztree实现下拉树形框使用到了json数据
2014/05/14 Javascript
Node.js 的异步 IO 性能探讨
2014/10/08 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
2015/09/18 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
jQuery实现动画、消失、显现、渐出、渐入效果示例
2018/09/06 jQuery
小程序实现留言板
2018/11/02 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
Node.js Event Loop各阶段讲解
2019/03/08 Javascript
axios实现文件上传并获取进度
2020/03/25 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
2021/01/26 Javascript
python使用7z解压软件备份文件脚本分享
2014/02/21 Python
Python中还原JavaScript的escape函数编码后字符串的方法
2014/08/22 Python
python等差数列求和公式前 100 项的和实例
2020/02/25 Python
Python unittest单元测试框架及断言方法
2020/04/15 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
2020/07/03 Python
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
微软香港官网及网上商店:Microsoft HK
2016/09/01 全球购物
大学生村官工作感言
2014/01/10 职场文书
2014年党员创先争优承诺书
2014/05/29 职场文书
美德少年事迹材料1000字
2014/08/21 职场文书
2014年社区工会工作总结
2014/12/18 职场文书
自荐信格式模板
2015/03/27 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
mysql如何能有效防止删库跑路
2021/10/05 MySQL