python numpy库np.percentile用法说明


Posted in Python onJune 08, 2020

在python中计算一个多维数组的任意百分比分位数,此处的百分位是从小到大排列,只需用np.percentile即可……

a = range(1,101)
#求取a数列第90%分位的数值
np.percentile(a, 90)
Out[5]: 90.10000000000001

a = range(101,1,-1)
#百分位是从小到大排列
np.percentile(a, 90)
Out[7]: 91.10000000000001

详看官方文档

numpy.percentile
Parameters
 ----------
 a : np数组
 q : float in range of [0,100] (or sequence of floats)
  Percentile to compute。
  要计算的q分位数。
 axis : 那个轴上运算。
 keepdims :bool是否保持维度不变。

 Examples
 --------
 >>> a = np.array([[10, 7, 4], [3, 2, 1]])
 >>> a
 array([[10, 7, 4],
   [ 3, 2, 1]])
 >>> np.percentile(a, 50) #50%的分位数,就是a里排序之后的中位数
 3.5
 >>> np.percentile(a, 50, axis=0) #axis为0,在纵列上求
 array([[ 6.5, 4.5, 2.5]])
 >>> np.percentile(a, 50, axis=1) #axis为1,在横行上求
 array([ 7., 2.])
 >>> np.percentile(a, 50, axis=1, keepdims=True) #keepdims=True保持维度不变
 array([[ 7.],
   [ 2.]])

补充知识:关于np.percentile函数的自己的理解(我觉得很对)

最近在跑别人baseline的时候看到np.percentile这个函数,之前没有用过,就跑去官方文档看了看到底是怎么工作的(官方文档连接)

行吧,官方文档给出的例子居然是以50为例(我当然知道这是得到中位数啊!!!),但是自己在运行的时候一直不明白下面的结果为什么是5.8.

python numpy库np.percentile用法说明

后来自己琢磨了一下,函数得到的结果是得到一个数,列表中百分之60的数小于该数字。

图中的列表长度为9,。数字1所对应的是0%,数字9对应的是100%,中间有8个间隔。100/8=12.5.

参数为60,那么60/12.5=4.8,意味着需要4.8个间隔,好的,先跳过4个间隔,现在到达5这个位置,然后往后0.8个间隔,该间隔对应的长度为6-5=1,所以最后得出的结果为5+1*0.8=5.8,和函数输出的结果一样。

主要是自己爱较真,不想了解具体怎么算的话只要记住函数的统计意义就可以。

另外关于我的解释中为什么要用“间隔”这种描述,因为我写的例子中1-9,间隔相邻数字的差是一样的,但是在实际应用中可能不一样。

以上这篇python numpy库np.percentile用法说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中实现常量(Const)功能
Jan 28 Python
python计算牛顿迭代多项式实例分析
May 07 Python
详解Python的Django框架中的templates设置
May 11 Python
python中set()函数简介及实例解析
Jan 09 Python
利用python的socket发送http(s)请求方法示例
May 07 Python
python使用matplotlib库生成随机漫步图
Aug 27 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
Apr 10 Python
PyQt5通信机制 信号与槽详解
Aug 07 Python
使用keras和tensorflow保存为可部署的pb格式
May 25 Python
基于python 取余问题(%)详解
Jun 03 Python
python中pandas.read_csv()函数的深入讲解
Mar 29 Python
PyTorch中permute的使用方法
Apr 26 Python
python thrift 实现 单端口多服务的过程
Jun 08 #Python
Python astype(np.float)函数使用方法解析
Jun 08 #Python
python opencv 实现读取、显示、写入图像的方法
Jun 08 #Python
python:删除离群值操作(每一行为一类数据)
Jun 08 #Python
pyecharts在数据可视化中的应用详解
Jun 08 #Python
python numpy实现rolling滚动案例
Jun 08 #Python
Python如何向SQLServer存储二进制图片
Jun 08 #Python
You might like
新浪新闻小偷
2006/10/09 PHP
php数字转汉字代码(算法)
2011/10/08 PHP
php函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
PHP实现变色验证码实例
2014/01/06 PHP
php中session过期时间设置及session回收机制介绍
2014/05/05 PHP
php获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
仿迅雷焦点广告效果(JQuery版)
2008/11/19 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
2014/05/23 Javascript
jQuery实现鼠标可拖动调整表格列宽度
2014/05/26 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
2016/07/04 Javascript
详解JavaScript树结构
2017/01/09 Javascript
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
浅谈一种让小程序支持JSX语法的新思路
2019/06/16 Javascript
javascript读取本地文件和目录方法详解
2020/08/06 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
Python中MySQL数据迁移到MongoDB脚本的方法
2016/04/28 Python
Python贪吃蛇游戏编写代码
2020/10/26 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
使用Python正则表达式操作文本数据的方法
2019/05/14 Python
python跳出双层for循环的解决方法
2019/06/24 Python
Python函数装饰器原理与用法详解
2019/08/16 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
2020/07/14 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
2020/12/07 Python
linux系统下pip升级报错的解决方法
2021/01/31 Python
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
产品推广策划方案
2014/05/10 职场文书
销售活动策划方案
2014/08/26 职场文书
学习礼仪心得体会
2014/09/01 职场文书
离婚协议书怎么写
2014/09/12 职场文书
法人单位适用的授权委托书
2014/09/19 职场文书
升职自荐书
2019/05/09 职场文书
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书
解决Golang time.Parse和time.Format的时区问题
2021/04/29 Golang