python多维数组分位数的求取方式


Posted in Python onMarch 03, 2020

在python中计算一个多维数组的任意百分比分位数,只需用np.percentile即可,十分方便

import numpy as np
a = [154, 400, 1124, 82, 94, 108]
print np.percentile(a,95) # gives the 95th percentile

补充拓展:如何解决hive同时计算多个分位数的问题

众所周知,原生hive没有计算中位数的函数(有的平台会有),只有计算分位数的函数percentile

在数据量不大的时候,速度尚可。但是数据量一上来之后,完全计算不出来。

那么如何解决这个问题呢,我们可以使用 row_number() over()通过两次排序来解决同时计算多个分位数,速度飞快。

比如我们需要计算mkt_mcc_storeidx表下以mkt_label,mccgroup,month分组,value_mccgroup的分位数

第一步:利用row_number() over()给value_mccgroup在分组里排序,记录下排名

python多维数组分位数的求取方式

第二步:计算mkt_label,mccgroup,month分组下的数据总数

python多维数组分位数的求取方式

第三步:join前两步的结果,取rank=你需要计算的分位数位置,想计算多少个分位数就计算多少个

python多维数组分位数的求取方式

第四步:再排一次序,这次数据量就已经少了很多了,毕竟每组里面只有几个数据,记录排名

python多维数组分位数的求取方式

第五步:得到具体的分位数

python多维数组分位数的求取方式

第六步:行转成列,所有分位数计算完毕

python多维数组分位数的求取方式

后来查看了下SQL代码的执行树,发现percentile利用了map来存数据,怪不得这么耗内存,其实时间久并不是算的时间久,是因为内存不够了,系统一直在回收内存

python多维数组分位数的求取方式

而rank over 仅仅就是个排序而已

python多维数组分位数的求取方式

以上这篇python多维数组分位数的求取方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现去除下载电影和电视剧文件名中的多余字符的方法
Sep 23 Python
python实现简单的TCP代理服务器
Oct 08 Python
TensorFlow安装及jupyter notebook配置方法
Sep 08 Python
python 实现绘制整齐的表格
Nov 18 Python
python异步Web框架sanic的实现
Apr 27 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
Jun 11 Python
浅谈Python 参数与变量
Jun 20 Python
Python性能分析工具py-spy原理用法解析
Jul 27 Python
Python爬虫开发与项目实战
Dec 16 Python
Python+Opencv实现把图片、视频互转的示例
Dec 17 Python
python中@property的作用和getter setter的解释
Dec 22 Python
python 实现有道翻译功能
Feb 26 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
Mar 03 #Python
python Plotly绘图工具的简单使用
Mar 03 #Python
python 函数嵌套及多函数共同运行知识点讲解
Mar 03 #Python
python实现扫雷游戏
Mar 03 #Python
python实现从ftp服务器下载文件
Mar 03 #Python
python实现简单的购物程序代码实例
Mar 03 #Python
python实现跨excel sheet复制代码实例
Mar 03 #Python
You might like
php环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
2006/11/17 PHP
PHP动态创建Web站点的方法
2011/08/14 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
2013/06/29 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
js setattribute批量设置css样式
2009/11/26 Javascript
8个超棒的学习 jQuery 的网站 推荐收藏
2011/04/02 Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
2013/03/24 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
JavaScript设计模式之单例模式实例
2014/09/24 Javascript
requireJS使用指南
2016/04/27 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
2016/09/09 Javascript
浅析Angular2子模块以及异步加载
2017/04/24 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
JS数组操作之增删改查的简单实现
2017/08/21 Javascript
在页面中引入js的两种方法(推荐)
2017/08/29 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
2019/08/29 Javascript
js实现弹窗效果
2020/08/09 Javascript
Python实现读取并保存文件的类
2017/05/11 Python
Python实现的简单dns查询功能示例
2017/05/24 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
django富文本编辑器的实现示例
2019/04/10 Python
Python 过滤错误log并导出的实例
2019/12/26 Python
关于Pytorch MaxUnpool2d中size操作方式
2020/01/03 Python
python实现简单的井字棋游戏(gui界面)
2021/01/22 Python
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
资产评估专业学生的自我鉴定
2013/11/14 职场文书
施工工地安全标语
2014/06/07 职场文书
2014年环卫工作总结
2014/11/22 职场文书
2015年社区教育工作总结
2015/05/13 职场文书
2015年财务科工作总结范文
2015/05/13 职场文书
论语读书笔记
2015/06/26 职场文书
《别在吃苦的年纪选择安逸》读后感3篇
2019/11/30 职场文书
python删除csv文件的行列
2021/04/06 Python