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获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
Python使用metaclass实现Singleton模式的方法
May 05 Python
python实现获取Ip归属地等信息
Aug 27 Python
Python 中Django安装和使用教程详解
Jul 03 Python
Django 开发环境配置过程详解
Jul 18 Python
Python在OpenCV里实现极坐标变换功能
Sep 02 Python
pytest中文文档之编写断言
Sep 12 Python
python3中numpy函数tile的用法详解
Dec 04 Python
jupyter notebook 重装教程
Apr 16 Python
Pytorch实验常用代码段汇总
Nov 19 Python
关于django python manage.py startapp 应用名出错异常原因解析
Dec 15 Python
Python爬虫框架之Scrapy中Spider的用法
Jun 28 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
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
PHP strncasecmp字符串比较的小技巧
2011/01/04 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
2019/04/10 PHP
使用composer 安装 laravel框架的方法图文详解
2019/08/02 PHP
laravel 自定义常量的两种方案
2019/10/14 PHP
Javascript自定义函数判断网站访问类型是PC还是移动终端
2014/01/10 Javascript
javascript实现按回车键切换焦点
2015/02/09 Javascript
异步JavaScript编程中的Promise使用方法
2015/07/28 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
jQuery实现向下滑出的平滑下拉菜单效果
2015/08/21 Javascript
基于Vue如何封装分页组件
2016/12/16 Javascript
常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全(推荐)
2016/12/20 Javascript
荐书|您有一份JavaScript书单待签收
2017/07/21 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
2017/11/03 Javascript
微信小程序实现红包雨功能
2018/07/11 Javascript
JavaScript中工厂函数与构造函数示例详解
2019/05/06 Javascript
利用原生JavaScript实现造日历轮子实例代码
2019/05/08 Javascript
node 解析图片二维码的内容代码实例
2019/09/11 Javascript
ES2020 新特性(种草)
2020/01/12 Javascript
利用Python演示数型数据结构的教程
2015/04/03 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
Django框架模板的使用方法示例
2019/05/25 Python
对Python3之方法的覆盖与super函数详解
2019/06/26 Python
解决Django连接db遇到的问题
2019/08/29 Python
pytorch数据预处理错误的解决
2020/02/20 Python
Python列表切片常用操作实例解析
2020/03/10 Python
珍珠奶茶店创业计划书
2014/01/11 职场文书
体育专业学生自我评价范文
2014/01/17 职场文书
高中军训感想300字
2014/03/04 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
酒店员工辞职信范文
2015/02/28 职场文书
mysql查询的控制语句图文详解
2021/04/11 MySQL
Ajax实现三级联动效果
2021/10/05 Javascript
《Estab Life》4月6日播出 正式PV、主视觉图公开
2022/03/20 日漫