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获取GY-85九轴模块信息示例
Dec 05 Python
python定时执行指定函数的方法
May 27 Python
Python中有趣在__call__函数
Jun 21 Python
在Django的模板中使用认证数据的方法
Jul 23 Python
python迭代器与生成器详解
Mar 10 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
Jan 18 Python
pandas进行时间数据的转换和计算时间差并提取年月日
Jul 06 Python
用python建立两个Y轴的XY曲线图方法
Jul 08 Python
pytorch 固定部分参数训练的方法
Aug 17 Python
关于Python字符串显示u...的解决方式
Mar 06 Python
python反扒机制的5种解决方法
Feb 06 Python
Python实现8种常用抽样方法
Jun 27 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
GD输出汉字的函数的分析
2006/10/09 PHP
php与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
ThinkPHP实现事务回滚示例代码
2014/06/23 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
php有道翻译api调用方法实例
2014/12/22 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
2019/10/30 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
一些mootools的学习资源
2010/02/07 Javascript
js点击更换背景颜色或图片的实例代码
2013/06/25 Javascript
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
js数组操作常用方法
2014/05/08 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
js实现延时加载Flash的方法
2015/11/26 Javascript
浅谈Node异步编程的机制
2017/10/18 Javascript
vue中引用阿里字体图标的方法
2018/02/10 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
vue中axios封装使用的完整教程
2021/03/03 Vue.js
[03:01]DOTA2英雄基础教程 露娜
2014/01/07 DOTA
python内置函数:lambda、map、filter简单介绍
2017/11/16 Python
pytorch cnn 识别手写的字实现自建图片数据
2018/05/20 Python
win10下tensorflow和matplotlib安装教程
2018/09/19 Python
python 并发编程 多路复用IO模型详解
2019/08/20 Python
Pycharm编辑器功能之代码折叠效果的实现代码
2020/10/15 Python
保险内勤岗位职责
2014/04/05 职场文书
勾股定理课后反思
2014/04/26 职场文书
2014年小学重阳节活动策划方案
2014/09/16 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
党员公开承诺书2015
2015/01/21 职场文书
迎新生晚会主持词
2015/06/30 职场文书
2020年个人安全保证书参考模板
2020/01/08 职场文书
Python爬虫之爬取最新更新的小说网站
2021/05/06 Python
Java中try catch处理异常示例
2021/12/06 Java/Android
Python使用PyYAML库读写yaml文件的方法
2022/04/06 Python