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 相关文章推荐
在Apache服务器上同时运行多个Django程序的方法
Jul 22 Python
Python实现按学生年龄排序的实际问题详解
Aug 29 Python
安装python3的时候就是输入python3死活没有反应的解决方法
Jan 24 Python
python爬虫之线程池和进程池功能与用法详解
Aug 02 Python
详解Python 定时框架 Apscheduler原理及安装过程
Jun 14 Python
Python+threading模块对单个接口进行并发测试
Jun 25 Python
Python将string转换到float的实例方法
Jul 29 Python
opencv导入头文件时报错#include的解决方法
Jul 31 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
Aug 10 Python
一行Python代码制作动态二维码的实现
Sep 09 Python
python函数enumerate,operator和Counter使用技巧实例小结
Feb 22 Python
Python如何执行系统命令
Sep 23 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/08/27 PHP
php时间戳转换的示例
2014/03/31 PHP
php实现文件下载实例分享
2014/06/02 PHP
Ubuntu上安装yaf扩展的方法
2018/01/29 PHP
PHP微商城开源代码实例
2019/03/27 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
php封装实现钉钉机器人报警接口的示例代码
2020/08/08 PHP
Javascript 网页黑白效果实现代码(兼容IE/FF等)
2010/04/23 Javascript
用表格输出1-1000之间的数字实现代码(附特效)
2013/04/21 Javascript
Jquery 过滤器(first,last,not,even,odd)的使用
2014/01/22 Javascript
使用JavaScript链式编程实现模拟Jquery函数
2014/12/21 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
React 使用Hooks简化受控组件的状态绑定
2019/03/18 Javascript
python之yield表达式学习
2014/09/02 Python
python3大文件解压和基本操作
2017/12/15 Python
Python实现PS图像抽象画风效果的方法
2018/01/23 Python
Python实现的根据IP地址计算子网掩码位数功能示例
2018/05/23 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
python 数据提取及拆分的实现代码
2019/08/26 Python
python基于gevent实现并发下载器代码实例
2019/11/01 Python
Java多线程实现四种方式原理详解
2020/06/02 Python
python asyncio 协程库的使用
2021/01/21 Python
中国旅游网站:同程旅游
2016/09/11 全球购物
英国领先的运动物理治疗供应公司:Vivomed
2018/07/14 全球购物
诚信考试标语
2014/06/24 职场文书
大四毕业生自荐书
2014/07/05 职场文书
反对形式主义、官僚主义、享乐主义和奢靡之风整改措施
2014/09/17 职场文书
党支部书记四风问题整改措施
2014/09/24 职场文书
蓬莱阁导游词
2015/02/04 职场文书
2015年师德表现自我评价
2015/03/05 职场文书
小学重阳节活动总结
2015/03/24 职场文书
小学英语教师研修感悟
2015/11/18 职场文书
详解PHP Swoole与TCP三次握手
2021/05/27 PHP
利用Python脚本写端口扫描器socket,python-nmap
2022/07/23 Python