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 命令行也可以自动补全
Nov 30 Python
python实现查找两个字符串中相同字符并输出的方法
Jul 11 Python
python脚本实现xls(xlsx)转成csv
Apr 10 Python
Python做文本按行去重的实现方法
Oct 19 Python
Python功能点实现:函数级/代码块级计时器
Jan 02 Python
Python面向对象进阶学习
May 21 Python
python Elasticsearch索引建立和数据的上传详解
Aug 04 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
Sep 16 Python
Python数据分析pandas模块用法实例详解
Nov 20 Python
Python descriptor(描述符)的实现
Nov 15 Python
python爬虫搭配起Bilibili唧唧的流程分析
Dec 01 Python
python数字类型和占位符详情
Mar 13 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
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
PHP中exec函数和shell_exec函数的区别
2014/08/20 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
2016/06/30 PHP
php mysql 封装类实例代码
2016/09/18 PHP
Yii实现复选框批量操作实例代码
2017/03/15 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
2013/01/09 Javascript
浅析Node.js中使用依赖注入的相关问题及解决方法
2015/06/24 Javascript
实例讲解JavaScript中的this指向错误解决方法
2016/06/13 Javascript
jquery checkbox的相关操作总结
2016/10/17 Javascript
微信小程序商城项目之购物数量加减(3)
2017/04/17 Javascript
node通过express搭建自己的服务器
2017/09/30 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
vue-cli3搭建项目的详细步骤
2018/12/05 Javascript
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
2020/09/08 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
python实现监控windows服务并自动启动服务示例
2014/04/17 Python
python爬取NUS-WIDE数据库图片
2016/10/05 Python
python梯度下降法的简单示例
2018/08/31 Python
python全栈要学什么 python全栈学习路线
2019/06/28 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
2020/03/08 Python
解决keras加入lambda层时shape的问题
2020/06/11 Python
纯css3实现图片翻牌特效
2015/03/10 HTML / CSS
欧缇丽加拿大官方网站:Caudalie加拿大
2019/07/18 全球购物
简述数据库的设计过程
2015/06/22 面试题
如何从一个文件档案的尾端新增记录
2016/12/02 面试题
外贸主管求职简历的自我评价
2013/10/23 职场文书
高中毕业的自我鉴定
2013/12/09 职场文书
活动宣传策划方案
2014/05/23 职场文书
踏青活动策划方案
2014/08/19 职场文书
校长新学期寄语2016
2015/12/04 职场文书
修改并编译golang源码的操作步骤
2021/07/25 Golang
深入解读Java三大集合之map list set的用法
2021/11/11 Java/Android
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL