午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

python多維數(shù)組分位數(shù)的求取方式

瀏覽:135日期:2022-08-04 14:11:54

在python中計(jì)算一個(gè)多維數(shù)組的任意百分比分位數(shù),只需用np.percentile即可,十分方便

import numpy as npa = [154, 400, 1124, 82, 94, 108]print np.percentile(a,95) # gives the 95th percentile

補(bǔ)充拓展:如何解決hive同時(shí)計(jì)算多個(gè)分位數(shù)的問題

眾所周知,原生hive沒有計(jì)算中位數(shù)的函數(shù)(有的平臺(tái)會(huì)有),只有計(jì)算分位數(shù)的函數(shù)percentile

在數(shù)據(jù)量不大的時(shí)候,速度尚可。但是數(shù)據(jù)量一上來之后,完全計(jì)算不出來。

那么如何解決這個(gè)問題呢,我們可以使用 row_number() over()通過兩次排序來解決同時(shí)計(jì)算多個(gè)分位數(shù),速度飛快。

比如我們需要計(jì)算mkt_mcc_storeidx表下以mkt_label,mccgroup,month分組,value_mccgroup的分位數(shù)

第一步:利用row_number() over()給value_mccgroup在分組里排序,記錄下排名

python多維數(shù)組分位數(shù)的求取方式

第二步:計(jì)算mkt_label,mccgroup,month分組下的數(shù)據(jù)總數(shù)

python多維數(shù)組分位數(shù)的求取方式

第三步:join前兩步的結(jié)果,取rank=你需要計(jì)算的分位數(shù)位置,想計(jì)算多少個(gè)分位數(shù)就計(jì)算多少個(gè)

python多維數(shù)組分位數(shù)的求取方式

第四步:再排一次序,這次數(shù)據(jù)量就已經(jīng)少了很多了,畢竟每組里面只有幾個(gè)數(shù)據(jù),記錄排名

python多維數(shù)組分位數(shù)的求取方式

第五步:得到具體的分位數(shù)

python多維數(shù)組分位數(shù)的求取方式

第六步:行轉(zhuǎn)成列,所有分位數(shù)計(jì)算完畢

python多維數(shù)組分位數(shù)的求取方式

后來查看了下SQL代碼的執(zhí)行樹,發(fā)現(xiàn)percentile利用了map來存數(shù)據(jù),怪不得這么耗內(nèi)存,其實(shí)時(shí)間久并不是算的時(shí)間久,是因?yàn)閮?nèi)存不夠了,系統(tǒng)一直在回收內(nèi)存

python多維數(shù)組分位數(shù)的求取方式

而rank over 僅僅就是個(gè)排序而已

python多維數(shù)組分位數(shù)的求取方式

以上這篇python多維數(shù)組分位數(shù)的求取方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 中文字幕在线中文 | 久久免费在线视频 | 欧美 日韩 精品 | 日本中文字幕在线观看 | 国产精品成人在线观看 | 日本美女黄色一级片 | 国产精品一区二区三区四区五区 | 欧美粗暴jizz性欧美20 | 成人在线视频网站 | 亚洲乱码精品 | jizz在线免费观看 | 日韩高清二区 | 高清一区二区三区 | 精品免费视频 | 久久久久久久久久久久久久 | 69性视频 | 亚洲性色av | 99视频在线看 | 在线观看色网站 | 日韩欧美在线观看 | 在线观看国产精品入口男同 | 免费日韩一级片 | 精品日韩在线 | 色虎在线观看 | 91麻豆视频在线观看 | 午夜视频一区二区 | 成人v精品蜜桃久一区 | 亚洲男女av | 免费黄网站在线观看 | 久久久精品蜜桃 | 黄色动漫在线免费观看 | 337p亚洲欧洲色噜噜噜 | 久久精品播放 | 亚洲国产成人精品女人 | 男人天堂一区 | 久久国产精品免费观看 | 波多野结衣久久精品 | 永久免费在线看片视频 | 51av视频| 亚洲自拍中文字幕 | 婷婷成人av |