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实现的登录和操作开心网脚本分享
Jul 09 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
Mar 11 Python
Python求出0~100以内的所有素数
Jan 23 Python
python用fsolve、leastsq对非线性方程组求解
Dec 15 Python
Python 限制线程的最大数量的方法(Semaphore)
Feb 22 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
Jun 18 Python
树莓派安装OpenCV3完整过程的实现
Oct 10 Python
Pytorch Tensor 输出为txt和mat格式方式
Jan 03 Python
Python基于QQ邮箱实现SSL发送
Apr 26 Python
Python绘图实现台风路径可视化代码实例
Oct 23 Python
python脚本定时发送邮件
Dec 22 Python
手残删除python之后的补救方法
Jun 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 mb_substr()函数截取中文字符串应用示例
2014/07/29 PHP
浅谈php错误提示及查错方法
2015/07/14 PHP
php实现倒计时效果
2015/12/19 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
2016/12/19 PHP
解决安装WampServer时提示缺少msvcr110.dll文件的问题
2017/07/09 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
PHP获取MySQL执行sql语句的查询时间方法
2018/08/21 PHP
JS实现随机化快速排序的实例代码
2013/08/01 Javascript
Jquery中offset()和position()的区别分析
2015/02/05 Javascript
当jquery ajax遇上401请求的解决方法
2016/05/19 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
js操作浏览器的参数方法
2017/01/21 Javascript
js实现一键复制功能
2017/03/16 Javascript
Vue.js中组件中的slot实例详解
2017/07/17 Javascript
Vue项目全局配置微信分享思路详解
2018/05/04 Javascript
vue 中的keep-alive实例代码
2018/07/20 Javascript
Vue中的作用域CSS和CSS模块的区别
2018/10/09 Javascript
VSCode插件安装完成后的配置(常用配置)
2020/08/24 Javascript
python使用marshal模块序列化实例
2014/09/25 Python
编写Python CGI脚本的教程
2015/06/29 Python
详解多线程Django程序耗尽数据库连接的问题
2018/10/08 Python
使用python把xmind转换成excel测试用例的实现代码
2020/10/12 Python
python 如何停止一个死循环的线程
2020/11/24 Python
运行时异常与一般异常有何异同?
2014/01/05 面试题
外贸员简历中的自我评价
2014/03/04 职场文书
竞选卫生委员演讲稿
2014/04/28 职场文书
农村党员一句话承诺
2014/05/30 职场文书
司机岗位职责
2015/02/04 职场文书
放射科岗位职责
2015/02/14 职场文书
go设置多个GOPATH的方式
2021/05/05 Golang
Pytorch 如何实现LSTM时间序列预测
2021/05/17 Python
源码解读Spring-Integration执行过程
2021/06/11 Java/Android
解析在浏览器地址栏输入一个URL后发生了什么
2021/06/21 Servers
python全面解析接口返回数据
2022/02/12 Python
MySQL 主从复制数据不一致的解决方法
2022/03/18 MySQL
Python docx库删除复制paragraph及行高设置图片插入示例
2022/07/23 Python