欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【python】numpy库np.percentile详解

程序员文章站 2022-06-01 12:55:59
...

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

import numpy as np
a = range(1, 101)
np.percentile(a, 90)
#输出:90.10000000000001
a = range(100, 1, -1)
np.percentile(a, 90)
#输出:90.2

a = range(101, 1, -1)
np.percentile(a, 90)
#输出: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.]])