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 相关文章推荐
写了个监控nginx进程的Python脚本
May 10 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
Apr 10 Python
对python中的pop函数和append函数详解
May 04 Python
Python import与from import使用及区别介绍
Sep 06 Python
python中aioysql(异步操作MySQL)的方法
Apr 11 Python
Python3.5内置模块之random模块用法实例分析
Apr 26 Python
Python线程协作threading.Condition实现过程解析
Mar 12 Python
tensorflow中tf.reduce_mean函数的使用
Apr 19 Python
Python unittest单元测试框架实现参数化
Apr 29 Python
使用npy转image图像并保存的实例
Jul 01 Python
Vs Code中8个好用的python 扩展插件
Oct 12 Python
Pandas 数据编码的十种方法
Apr 20 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获取某个目录大小的代码
2008/09/10 PHP
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
PHP编程实现阳历转换为阴历的方法实例
2017/08/08 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
thinkphp3.2.0 setInc方法 源码全面解析
2018/01/29 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
2020/05/14 PHP
JavaScript获取GridView中用户点击控件的行号,列号
2009/04/14 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
js实现简易的单数字随机抽奖(0-9)
2020/03/19 Javascript
10个JavaScript中易犯小错误
2016/02/14 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
【经验总结】编写JavaScript代码时应遵循的14条规律
2016/06/20 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
JavaScript省市级联下拉菜单实例
2017/02/14 Javascript
angular+bootstrap的双向数据绑定实例
2017/03/03 Javascript
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
Vue组件通信中非父子组件传值知识点总结
2019/12/05 Javascript
jquery插件实现轮播图效果
2020/10/19 jQuery
python下载文件时显示下载进度的方法
2015/04/02 Python
Pycharm配置远程调试的方法步骤
2018/12/17 Python
python tkinter实现屏保程序
2019/07/30 Python
Python面向对象封装操作案例详解
2019/12/31 Python
Python AutoCAD 系统设置的实现方法
2020/04/01 Python
你懂得怎么写自荐信吗?
2013/12/27 职场文书
优秀的自荐信要注意哪些
2014/01/03 职场文书
军训鉴定表自我鉴定
2014/02/13 职场文书
预备党员的自我评价
2014/03/12 职场文书
超市中秋节促销方案
2014/03/21 职场文书
开展党的群众路线教育实践活动总结报告
2014/10/31 职场文书
死亡赔偿协议书
2015/01/28 职场文书
追悼词范文大全
2015/06/23 职场文书
《合作意向书》怎么写?
2019/08/20 职场文书
Javascript中Microtask和Macrotask鲜为人知的知识点
2022/04/02 Javascript