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模拟登录验证码(代码简单)
Feb 06 Python
基于python yield机制的异步操作同步化编程模型
Mar 18 Python
Python实现文件内容批量追加的方法示例
Aug 29 Python
python中利用队列asyncio.Queue进行通讯详解
Sep 10 Python
django表单实现下拉框的示例讲解
May 29 Python
详解python单元测试框架unittest
Jul 02 Python
python logging重复记录日志问题的解决方法
Jul 12 Python
python使用Qt界面以及逻辑实现方法
Jul 10 Python
如何在Python 游戏中模拟引力
Mar 27 Python
python os模块常用的29种方法使用详解
Jun 02 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
Oct 21 Python
教你使用TensorFlow2识别验证码
Jun 11 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设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
2014/03/13 PHP
ecshop 2.72如何修改后台访问地址
2015/03/03 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
php生成图片验证码
2015/06/09 PHP
Jquery插件 easyUI属性汇总
2011/01/19 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
JS实现将人民币金额转换为大写的示例代码
2014/02/13 Javascript
js 动态修改css文件的方法
2014/08/05 Javascript
Json实现异步请求提交评论无需跳转其他页面
2014/10/11 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
2015/01/28 Javascript
浅谈被jQuery抛弃的函数及替代函数
2015/05/03 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
js确认框confirm()用法实例详解
2016/01/07 Javascript
JavaScript实现瀑布流布局
2020/06/28 Javascript
jQuery中判断对象是否存在的方法汇总
2016/02/24 Javascript
JSON基本语法及与JavaScript的异同实例分析
2019/01/04 Javascript
vue-cli脚手架的.babelrc文件用法说明
2020/09/11 Javascript
[46:50]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
两个命令把 Vim 打造成 Python IDE的方法
2016/03/20 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
2017/06/12 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
python五子棋游戏的设计与实现
2019/06/18 Python
对Python生成器、装饰器、递归的使用详解
2019/07/19 Python
Python模拟FTP文件服务器的操作方法
2020/02/18 Python
HTML5 Canvas的常用线条属性值总结
2016/03/17 HTML / CSS
海外淘书首选:AbeBooks
2017/07/31 全球购物
在线实验室测试:HealthLabs.com
2020/05/03 全球购物
经典c++面试题五
2014/12/17 面试题
有模特经验的简历自我评价
2013/09/19 职场文书
学雷锋活动总结报告
2014/06/26 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
申报材料格式
2014/12/30 职场文书
小马王观后感
2015/06/11 职场文书
详解Go语言运用广度优先搜索走迷宫
2021/06/23 Python