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实现115网盘自动下载的方法
Sep 30 Python
Python使用defaultdict读取文件各列的方法
May 11 Python
Python读取Json字典写入Excel表格的方法
Jan 03 Python
Python多进程与服务器并发原理及用法实例分析
Aug 21 Python
Python、 Pycharm、Django安装详细教程(图文)
Apr 12 Python
Python3批量生成带logo的二维码方法
Jun 24 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
Jul 15 Python
python中Ansible模块的Playbook的具体使用
May 28 Python
利用Python将多张图片合成视频的实现
Nov 23 Python
python基于tkinter制作下班倒计时工具
Apr 28 Python
python单元测试之pytest的使用
Jun 07 Python
Python+pyaudio实现音频控制示例详解
Jul 23 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
PHP浮点比较大小的方法
2016/02/14 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
php文件上传、下载和删除示例
2020/08/28 PHP
如何直接访问php实例对象中的private属性详解
2017/10/12 PHP
PHP+Ajax实现的博客文章添加类别功能示例
2018/03/29 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
详解angularJS自定义指令间的相互交互
2017/07/05 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
jQury Ajax使用Token验证身份实例代码
2017/09/22 Javascript
React如何利用相对于根目录进行引用组件详解
2017/10/09 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
vue props传值失败 输出undefined的解决方法
2018/09/11 Javascript
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
es6中new.target的作用和使用场景简单示例分析
2020/03/14 Javascript
JavaScript WeakMap使用详解
2021/02/05 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
[28:42]Ti4正赛VG vs NEWBEE1
2014/07/19 DOTA
Python使用函数默认值实现函数静态变量的方法
2014/08/18 Python
使用Python的urllib2模块处理url和图片的技巧两则
2016/02/18 Python
Python中selenium实现文件上传所有方法整理总结
2017/04/01 Python
Python自动化开发学习之三级菜单制作
2017/07/14 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
解决django-xadmin列表页filter关联对象搜索问题
2019/11/15 Python
python的链表基础知识点
2020/09/13 Python
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
WatchShop法国:英国排名第一的独立手表零售商
2020/02/17 全球购物
编写函数,将一个3*3矩阵转置
2013/10/09 面试题
会计实习自我鉴定
2013/12/04 职场文书
上课迟到检讨书100字
2014/01/11 职场文书
领导班子党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
《我是什么》教学反思
2016/02/16 职场文书
导游词之五台山
2019/10/11 职场文书
Android超详细讲解组件ScrollView的使用
2022/03/31 Java/Android