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 19 Python
Django框架的使用教程路由请求响应的方法
Jul 03 Python
Python 实现「食行生鲜」签到领积分功能
Sep 26 Python
Python中按值来获取指定的键
Mar 04 Python
详解Python匿名函数(lambda函数)
Apr 19 Python
Python学习笔记之错误和异常及访问错误消息详解
Aug 08 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
Aug 30 Python
python实现多进程通信实例分析
Sep 01 Python
python字符串常用方法及文件简单读写的操作方法
Mar 04 Python
PyCharm永久激活方式(推荐)
Sep 22 Python
django日志默认打印request请求信息的方法示例
May 17 Python
Python趣味入门教程之循环语句while
Aug 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 转义使用详解
2013/07/15 PHP
php实现的九九乘法口诀表简洁版
2014/07/28 PHP
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
PHP手机短信验证码实现流程详解
2018/05/17 PHP
对JavaScript的eval()中使用函数的进一步讨论
2008/07/26 Javascript
JavaScript 注册事件代码
2011/01/27 Javascript
JavaScript中几个重要的属性(this、constructor、prototype)介绍
2013/05/19 Javascript
微信分享的标题、缩略图、连接及描述设置方法
2014/10/14 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
AngularJS服务service用法总结
2016/12/13 Javascript
Vue.js通用应用框架-Nuxt.js的上手教程
2017/12/25 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
2018/06/29 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
React中获取数据的3种方法及优缺点
2020/02/18 Javascript
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
Python实现的字典值比较功能示例
2018/01/08 Python
Python装饰器用法示例小结
2018/02/11 Python
python实现聊天小程序
2018/03/13 Python
Tensorflow加载预训练模型和保存模型的实例
2018/07/27 Python
对python条件表达式的四种实现方法小结
2019/01/30 Python
解决pyecharts在jupyter notebook中使用报错问题
2020/04/23 Python
python通过txt文件批量安装依赖包的实现步骤
2019/08/13 Python
python实现的生成word文档功能示例
2019/08/23 Python
Django--权限Permissions的例子
2019/08/28 Python
python 魔法函数实例及解析
2019/09/25 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
Python实现点云投影到平面显示
2020/01/18 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
2020/07/02 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
美国电子产品折扣网站:Daily Steals
2017/05/20 全球购物
创业计划书——互联网商机
2014/01/12 职场文书
网络管理员岗位职责
2014/03/17 职场文书
元旦主持词开场白
2015/05/29 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书