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爬取亚马逊书籍信息代码分享
Dec 09 Python
Django中使用celery完成异步任务的示例代码
Jan 23 Python
python获取程序执行文件路径的方法(推荐)
Apr 26 Python
python3判断url链接是否为404的方法
Aug 10 Python
Python中反射和描述器总结
Sep 23 Python
django Serializer序列化使用方法详解
Oct 16 Python
浅谈python的输入输出,注释,基本数据类型
Apr 02 Python
Python面向对象之继承原理与用法案例分析
Dec 31 Python
python实现逻辑回归的示例
Oct 09 Python
如何用python实现一个HTTP连接池
Jan 14 Python
手残删除python之后的补救方法
Jun 26 Python
python保存图片的四个常用方法
Feb 28 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面向对象编程快速入门
2006/12/14 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
2015/03/19 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
2016/01/09 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
js日期相关函数总结分享
2013/10/15 Javascript
解决checkbox的attr(checked)一直为undefined问题
2014/06/16 Javascript
javascript中html字符串转化为jquery dom对象的方法
2015/08/27 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
jquery配合.NET实现点击指定绑定数据并且能够一键下载
2016/10/28 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
2017/08/17 Javascript
Thinkjs3新手入门之如何使用静态资源目录
2017/12/06 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
2019/07/29 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
JS函数本身的作用域实例分析
2020/03/16 Javascript
Python对象体系深入分析
2014/10/28 Python
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
python 以16进制打印输出的方法
2018/07/09 Python
django如何连接已存在数据的数据库
2018/08/14 Python
Django项目中添加ldap登陆认证功能的实现
2019/04/04 Python
Python生成MD5值的两种方法实例分析
2019/04/26 Python
如何使用Python实现自动化水军评论
2019/06/26 Python
python中对_init_的理解及实例解析
2019/10/11 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
Django自关联实现多级联动查询实例
2020/05/19 Python
pytorch中index_select()的用法详解
2021/01/06 Python
vue实现倒计时功能
2021/03/24 Vue.js
高三语文教学反思
2014/01/15 职场文书
安全教育感言
2014/03/04 职场文书
公司办公室岗位职责
2014/03/19 职场文书
讲座主持词
2014/03/20 职场文书
竞聘演讲稿精彩开头和结尾
2014/05/14 职场文书
承诺书的内容有哪些,怎么写?
2019/06/21 职场文书
导游词之潮音寺
2019/09/26 职场文书