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程序语言快速上手教程
Jul 18 Python
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
Jul 09 Python
python进程类subprocess的一些操作方法例子
Nov 22 Python
Python Web框架Flask中使用新浪SAE云存储实例
Feb 08 Python
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
May 25 Python
利用python打印出菱形、三角形以及矩形的方法实例
Aug 08 Python
python输入错误密码用户锁定实现方法
Nov 27 Python
python+pandas分析nginx日志的实例
Apr 28 Python
Python常见的pandas用法demo示例
Mar 16 Python
python集合的创建、添加及删除操作示例
Oct 08 Python
python安装和pycharm环境搭建设置方法
May 27 Python
python使用openpyxl库读写Excel表格的方法(增删改查操作)
May 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
基于mysql的bbs设计(三)
2006/10/09 PHP
php数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
解析php下载远程图片函数 可伪造来路
2013/06/25 PHP
php发送get、post请求的6种方法简明总结
2014/07/08 PHP
修改destoon会员公司的伪静态中的com目录的方法
2014/08/21 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
PHP count()函数讲解
2019/02/03 PHP
Javascript 圆角div的实现代码
2009/10/15 Javascript
动态载入js提高网页打开速度的方法
2014/07/04 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
js获取当前日期时间及其它操作汇总
2015/04/17 Javascript
vue中eslintrc.js配置最详细介绍
2018/12/21 Javascript
小程序扫描普通链接二维码跳转小程序指定界面方法
2019/05/07 Javascript
vue+elementUI(el-upload)图片压缩,默认同比例压缩操作
2020/08/10 Javascript
Python urlopen()函数 示例分享
2014/06/12 Python
浅谈Python里面小数点精度的控制
2018/07/16 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
python gdal安装与简单使用
2019/08/01 Python
基于Python解密仿射密码
2019/10/21 Python
Python利用PyExecJS库执行JS函数的案例分析
2019/12/18 Python
解决python-docx打包之后找不到default.docx的问题
2020/02/13 Python
基于keras中的回调函数用法说明
2020/06/17 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
2018/05/28 HTML / CSS
屈臣氏马来西亚官网:Watsons马来西亚
2019/06/15 全球购物
生态学毕业生自荐信
2013/10/27 职场文书
函授本科自我鉴定
2013/11/03 职场文书
英文版餐饮运营管理求职信
2013/11/06 职场文书
团委竞选演讲稿
2014/04/24 职场文书
小学班级特色活动方案
2014/08/31 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
2015年电教工作总结
2015/05/26 职场文书
幼儿园园长六一致辞
2015/07/31 职场文书
员工给公司的建议书
2019/06/24 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书