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写入中英文字符串到文件的方法
May 06 Python
从Python的源码来解析Python下的freeblock
May 11 Python
Python六大开源框架对比
Oct 19 Python
python+matplotlib绘制3D条形图实例代码
Jan 17 Python
python2 与 pyhton3的输入语句写法小结
Sep 10 Python
Python操作Excel插入删除行的方法
Dec 10 Python
python学习开发mock接口
Apr 28 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
Jan 06 Python
基于python SMTP实现自动发送邮件教程解析
Jun 02 Python
python3中确保枚举值代码分析
Dec 02 Python
python中if嵌套命令实例讲解
Feb 25 Python
用基于python的appium爬取b站直播消费记录
Apr 17 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
全国FM电台频率大全 - 18 湖南省
2020/03/11 无线电
PHP中for循环语句的几种变型
2007/03/16 PHP
PHP的分页功能
2007/03/21 PHP
php上的memcache和memcached两个pecl库
2010/03/29 PHP
PHP调用VC编写的COM组件实例
2014/03/29 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
yii2实现Ueditor百度编辑器的示例代码
2018/11/02 PHP
Laravel框架实现简单的学生信息管理平台案例
2019/05/07 PHP
用js一次改变多个input的readonly属性值的方法
2014/06/11 Javascript
javascript无刷新评论实现方法
2015/05/13 Javascript
javascript字体颜色控件的开发 JS实现字体控制
2017/11/27 Javascript
JavaScript 有用的代码片段和 trick
2018/02/22 Javascript
vue实现记事本功能
2019/06/26 Javascript
实例分析javascript中的异步
2020/06/02 Javascript
vscode中Vue别名路径提示的实现
2020/07/31 Javascript
Python 正则表达式操作指南
2009/05/04 Python
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
python数据处理实战(必看篇)
2017/06/11 Python
Python2包含中文报错的解决方法
2018/07/09 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
python 监听salt job状态,并任务数据推送到redis中的方法
2019/01/14 Python
python3 selenium自动化测试 强大的CSS定位方法
2019/08/23 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
python实现文字版扫雷
2020/04/24 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
HTML5之SVG 2D入门7—SVG元素的重用与引用
2013/01/30 HTML / CSS
采用怎样的方法保证数据的完整性
2013/12/02 面试题
国际贸易毕业生求职信范文
2014/02/21 职场文书
战略合作协议书范本
2014/04/18 职场文书
房产公证书格式
2015/01/26 职场文书
离婚协议书范文2015
2015/01/26 职场文书
汽车销售员岗位职责
2015/04/11 职场文书
2015入党自传格式范文
2015/06/26 职场文书
2019初中学生入团申请书
2019/06/27 职场文书