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 Web开发框架Django
Jun 30 Python
探寻python多线程ctrl+c退出问题解决方案
Oct 23 Python
Python语言实现百度语音识别API的使用实例
Dec 13 Python
Python处理CSV与List的转换方法
Apr 19 Python
解决python3 Pycharm上连接数据库时报错的问题
Dec 03 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
Dec 10 Python
Python 窗体(tkinter)按钮 位置实例
Jun 13 Python
Python logging模块写入中文出现乱码
May 21 Python
python切割图片的示例
Nov 12 Python
对Pytorch 中的contiguous理解说明
Mar 03 Python
Flask使用SQLAlchemy实现持久化数据
Jul 16 Python
python 使用pandas读取csv文件的方法
Dec 24 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实现Ftp用户的在线管理的代码
2007/03/06 PHP
使用XDebug调试及单元测试覆盖率分析
2011/01/27 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
2011/02/03 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
2011/09/19 PHP
浅析十款PHP开发框架的对比
2013/07/05 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
2013/05/19 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
基于Javascript实现返回顶部按钮
2016/02/29 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
iview同时验证多个表单问题总结
2018/09/29 Javascript
vue项目前端知识点整理【收藏】
2019/05/13 Javascript
详解小程序用户登录状态检查与更新实例
2019/05/15 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
微信小程序吸底区域适配iPhoneX的实现
2020/04/09 Javascript
javascript前端实现多视频上传
2020/12/13 Javascript
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
Python实现获取域名所用服务器的真实IP
2015/10/25 Python
Python编程对列表中字典元素进行排序的方法详解
2017/05/26 Python
python实现BP神经网络回归预测模型
2019/08/09 Python
俄罗斯女装店:12storeez
2019/10/25 全球购物
最新远光软件笔试题面试题内容
2013/11/08 面试题
水务局局长岗位职责
2013/11/28 职场文书
回门宴父母答谢词
2014/01/26 职场文书
幼儿园六一儿童节主持节目串词
2014/03/21 职场文书
机关会计岗位职责
2014/04/08 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
学校感恩节活动策划方案
2014/10/06 职场文书
委托书英文
2015/01/28 职场文书
2016教师年度考核评语大全
2015/12/01 职场文书
java多态注意项小结
2021/10/16 Java/Android