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 03 Python
python 简单备份文件脚本v1.0的实例
Nov 06 Python
Python3.7中安装openCV库的方法
Jul 11 Python
Python基本socket通信控制操作示例
Jan 30 Python
Python实现连接MySql数据库及增删改查操作详解
Apr 16 Python
python导入坐标点的具体操作
May 10 Python
PyQt5使用QTimer实现电子时钟
Jul 29 Python
tensorflow tf.train.batch之数据批量读取方式
Jan 20 Python
使用Django实现把两个模型类的数据聚合在一起
Mar 28 Python
如何基于python实现年会抽奖工具
Oct 20 Python
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 Python
Python趣味实战之手把手教你实现举牌小人生成器
Jun 07 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中调用ASP.NET的WebService的代码
2011/04/22 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
jquery中dom操作和事件的实例学习 下拉框应用
2011/12/01 Javascript
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
Vue.JS入门教程之事件监听
2016/12/01 Javascript
解决vue-router进行build无法正常显示路由页面的问题
2018/03/06 Javascript
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
Vue 获取数组键名的方法
2018/06/21 Javascript
代码整洁之道(重构)
2018/10/25 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
js仿360开机效果
2019/12/26 Javascript
Python获取任意xml节点值的方法
2015/05/05 Python
Python IDE PyCharm的基本快捷键和配置简介
2015/11/04 Python
基于Python __dict__与dir()的区别详解
2017/10/30 Python
java中两个byte数组实现合并的示例
2018/05/09 Python
Python读取mat文件,并转为csv文件的实例
2018/07/04 Python
python实现贪吃蛇游戏
2020/03/21 Python
python添加菜单图文讲解
2019/06/04 Python
python模拟鼠标点击和键盘输入的操作
2019/08/04 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
Python基于yield遍历多个可迭代对象
2020/03/12 Python
Django values()和value_list()的使用
2020/03/31 Python
爬虫代理的cookie如何生成运行
2020/09/22 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
python爬虫调度器用法及实例代码
2020/11/30 Python
澳大利亚百货公司:David Jones
2018/02/08 全球购物
澳大利亚最受欢迎的美发用品目的地:AMR
2019/08/28 全球购物
高中自我评价分享
2013/12/05 职场文书
2014年小学数学教师工作总结
2014/12/03 职场文书
倡议书格式及范文
2015/04/29 职场文书
TypeScript 内置高级类型编程示例
2022/09/23 Javascript