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实现从URL地址提取文件名的方法
May 15 Python
Python多进程机制实例详解
Jul 02 Python
sublime text 3配置使用python操作方法
Jun 11 Python
Pandas读写CSV文件的方法示例
Mar 27 Python
python实现微信自动回复及批量添加好友功能
Jul 03 Python
pyenv虚拟环境管理python多版本和软件库的方法
Dec 26 Python
Python tkinter和exe打包的方法
Feb 05 Python
如何使用python代码操作git代码
Feb 29 Python
Python引入多个模块及包的概念过程解析
Sep 21 Python
python 通过exifread读取照片信息
Dec 24 Python
python数字图像处理之对比度与亮度调整示例
Jun 28 Python
python如何利用cv2.rectangle()绘制矩形框
Dec 24 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绘制在图片上的正余弦曲线
2013/06/08 PHP
PHP设计模式之简单投诉页面实例
2016/02/24 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
2017/06/06 PHP
PHP模型Model类封装数据库操作示例
2019/03/14 PHP
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
JS 操作Array数组的方法及属性实例解析
2014/01/08 Javascript
使用js操作css实现js改变背景图片示例
2014/03/10 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
2017/07/17 jQuery
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
2018/05/24 jQuery
微信小程序input框中加入小图标的实现方法
2018/06/19 Javascript
Bootstrap table表格初始化表格数据的方法
2018/07/25 Javascript
axios的拦截请求与响应方法
2018/08/11 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
原生小程序封装跑马灯效果
2020/10/21 Javascript
详解python脚本自动生成需要文件实例代码
2017/02/04 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
python实现美团订单推送到测试环境,提供便利操作示例
2019/08/09 Python
python中id函数运行方式
2020/07/03 Python
如何通过python实现IOU计算代码实例
2020/11/02 Python
HTML5标签嵌套规则详解【必看】
2016/04/26 HTML / CSS
使用SVG实现提示框功能的示例代码
2020/06/05 HTML / CSS
给朋友的道歉信
2014/01/09 职场文书
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
群众路线表态发言材料
2014/10/17 职场文书
初中家长评语大全
2014/12/26 职场文书
三峡导游词
2015/01/31 职场文书
初二物理教学反思
2016/02/19 职场文书
CSS 伪元素::marker详解
2021/06/26 HTML / CSS
C站最全Python标准库总结,你想要的都在这里
2021/07/03 Python