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实现的一个找零钱的小程序代码分享
Aug 25 Python
Python使用shelve模块实现简单数据存储的方法
May 20 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
Sep 05 Python
运用Python的webbrowser实现定时打开特定网页
Feb 21 Python
python文件转为exe文件的方法及用法详解
Jul 08 Python
python正则-re的用法详解
Jul 28 Python
Python如何对齐字符串
Jul 30 Python
Python判断变量是否是None写法代码实例
Oct 09 Python
详解Python遍历列表时删除元素的正确做法
Jan 07 Python
深入理解python多线程编程
Apr 18 Python
python3.7.2 tkinter entry框限定输入数字的操作
May 22 Python
教你如何使用Python开发一个钉钉群应答机器人
Jun 21 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中使用XML
2006/10/09 PHP
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
php内存缓存实现方法
2015/01/24 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
JS获得URL超链接的参数值实例代码
2013/06/21 Javascript
全面兼容的javascript时间格式化函数(比较实用)
2014/05/14 Javascript
jquery 3D 标签云示例代码
2014/06/12 Javascript
JavaScript替换当前页面的方法
2015/04/03 Javascript
node.js操作mongodb学习小结
2015/04/25 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
2017/03/29 Javascript
PHP 实现一种多文件上传的方法
2017/09/20 Javascript
vue实现点击选中,其他的不选中方法
2018/09/05 Javascript
JS实现换肤功能的方法实例详解
2019/01/30 Javascript
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
Python 字符串定义
2009/09/25 Python
在Python中操作字符串之startswith()方法的使用
2015/05/20 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
Python 多进程并发操作中进程池Pool的实例
2017/11/01 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
python颜色随机生成器的实例代码
2020/01/10 Python
使用tensorboard可视化loss和acc的实例
2020/01/21 Python
django处理select下拉表单实例(从model到前端到post到form)
2020/03/13 Python
python3爬虫中异步协程的用法
2020/07/10 Python
用python给csv里的数据排序的具体代码
2020/07/17 Python
Django前后端分离csrf token获取方式
2020/12/25 Python
Mio Skincare法国官网:身体紧致及孕期身体护理
2018/04/04 全球购物
测控技术与仪器个人求职信范文
2013/12/30 职场文书
致垒球运动员加油稿
2014/02/16 职场文书
环保宣传标语
2014/06/12 职场文书
暑期实践个人总结
2015/03/06 职场文书
2015年转正工作总结范文
2015/04/02 职场文书
2016党员干部反腐倡廉心得体会
2016/01/13 职场文书
JavaScript实现显示和隐藏图片
2021/04/29 Javascript