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单例模式实例分析
Apr 08 Python
详谈Python基础之内置函数和递归
Jun 21 Python
windows下搭建python scrapy爬虫框架步骤
Dec 23 Python
关于初始种子自动选取的区域生长实例(python+opencv)
Jan 16 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
Apr 10 Python
新手常见Python错误及异常解决处理方案
Jun 18 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
Nov 28 Python
python不同版本的_new_不同点总结
Dec 09 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
Mar 04 Python
总结python多进程multiprocessing的相关知识
Jun 29 Python
python在package下继续嵌套一个package
Apr 14 Python
利用Python实时获取steam特惠游戏数据
Jun 25 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
压力如何影响浓缩咖啡品质
2021/03/03 咖啡文化
PHP print类函数使用总结
2010/06/25 PHP
destoon二次开发模板及调用语法汇总
2014/06/21 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
VBS通过WMI监视注册表变动的代码
2011/10/27 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
javascript自然分类法算法实现代码
2013/10/11 Javascript
在Linux上用forever实现Node.js项目自启动
2014/07/09 Javascript
手机端转盘抽奖代码分享
2015/09/10 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
javascript创建含数字字母的随机字符串方法总结
2016/08/01 Javascript
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
2017/06/01 Javascript
删除table表格行的实例讲解
2017/09/21 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
详解微信小程序-扫一扫 wx.scanCode() 扫码大变身
2019/04/30 Javascript
js获取图片的base64编码并压缩
2020/12/05 Javascript
[02:10]DOTA2亚洲邀请赛 EG战队出场宣传片
2015/02/07 DOTA
python中实现定制类的特殊方法总结
2014/09/28 Python
Python返回真假值(True or False)小技巧
2015/04/10 Python
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
Python+树莓派+YOLO打造一款人工智能照相机
2018/01/02 Python
python2.7到3.x迁移指南
2018/02/01 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
python切片的步进、添加、连接简单操作示例
2019/07/11 Python
Python定时任务工具之APScheduler使用方式
2019/07/24 Python
python 命名规范知识点汇总
2020/02/14 Python
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
男女时尚与复古风格在线购物:RoseGal(全球免费送货)
2017/07/19 全球购物
数学专业毕业生自荐信
2013/11/10 职场文书
矫正人员思想汇报
2014/01/08 职场文书
大客户经理岗位职责
2015/04/09 职场文书
工作失职自我检讨书
2015/05/05 职场文书
2015年外贸业务员工作总结范文
2015/05/23 职场文书
基于Redis结合SpringBoot的秒杀案例详解
2021/10/05 Redis