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绘制常用的图表
Aug 27 Python
shelve  用来持久化任意的Python对象实例代码
Oct 12 Python
Linux CentOS7下安装python3 的方法
Jan 21 Python
Python3 XML 获取雅虎天气的实现方法
Feb 01 Python
解读python logging模块的使用方法
Apr 17 Python
python-opencv颜色提取分割方法
Dec 08 Python
Pyqt5实现英文学习词典
Jun 24 Python
Python操作注册表详细步骤介绍
Feb 05 Python
Python列表操作方法详解
Feb 09 Python
python+django+selenium搭建简易自动化测试
Aug 19 Python
通过代码实例了解Python异常本质
Sep 16 Python
详解Django中异步任务之django-celery
Nov 05 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
解析thinkphp中的导入文件标签
2013/06/20 PHP
PHP对象、模式与实践之高级特性分析
2016/12/08 PHP
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
Node.js模拟浏览器文件上传示例
2014/03/26 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
javascript中的Function.prototye.bind
2015/06/25 Javascript
jquery自动补齐功能插件flexselect用法示例
2016/08/06 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
详解照片瀑布流效果(js,jquery分别实现与知识点总结)
2017/01/01 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
微信小程序实现漂亮的弹窗效果
2020/05/26 Javascript
angularJs中$http获取后台数据的实例讲解
2018/08/08 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
ES6入门教程之Array.from()方法
2019/03/23 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
JavaScript前端实现压缩图片功能
2020/03/06 Javascript
python读文件逐行处理的示例代码分享
2013/12/27 Python
python中threading超线程用法实例分析
2015/05/16 Python
Python中getattr函数和hasattr函数作用详解
2016/06/14 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
python语音识别实践之百度语音API
2018/08/30 Python
Python基于plotly模块实现的画图操作示例
2019/01/23 Python
巧用CSS3的calc()宽度计算做响应模式布局的方法
2018/03/22 HTML / CSS
土耳其时尚购物网站:Morhipo
2017/09/04 全球购物
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
荷兰家电购物网站:Expert.nl
2020/01/18 全球购物
汇科协同Java笔试题
2012/03/31 面试题
拾金不昧表扬信范文
2014/01/11 职场文书
学习经验演讲稿
2014/05/10 职场文书
俄语专业毕业生求职信
2014/07/12 职场文书
公司经营目标责任书
2015/01/29 职场文书
2015年艾滋病宣传活动总结
2015/03/27 职场文书
党支部考察意见范文
2015/06/02 职场文书
2016教师六五普法学习心得体会
2016/01/21 职场文书
班组长如何制订适合本班组的工作计划?
2019/07/10 职场文书
python中的getter与setter你了解吗
2022/03/24 Python