分享

numpy : percentile使用(多用于去除 离群点)

 吃草的鱼仔 2018-04-24

numpy.percentile()

百分位数是统计中使用的度量,表示小于这个值的观察值占总数q的百分比。 函数numpy.percentile()接受以下参数。

numpy.percentile(a, q, axis)
Python

其中:

序号参数及描述
1.a 输入数组
2.q 要计算的百分位数,在 0 ~ 100 之间
3.axis 沿着它计算百分位数的轴   ,二维取值0,1

首先明确百分位数的概念

        第p个百分位数是这样一个值,它使得至少有p%数据项小于或等于这个值,且至少有(100-p)%的数据项大于或等于这个值。

举个例子:

       高等院校的入学考试成绩经常以百分位数的形式报告。比如,假设某个考生在入学考试中的语文部分的原始分数为54分。相对于参加同一考试的其他学生来说,他的成绩如何并不容易知道。但是如果原始分数54分恰好对应的是第70百分位数,我们就能知道大约70%的学生的考分比他低,而约30%的学生考分比他高 

这里的p = 70 .

在numpy中,是这样的:

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 = range(1,101)
    >>> np.percentile(a, 90)  #90%的分位数    90.1 #表示有百分之九十的数小于90.1。
    >>> 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 #表示有百分之五十的数小于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)
    #保持维度不变,这对使用sklearn的fit有好处。
    array([[ 7.],
           [ 2.]])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 1
  • 2
  • 1
  • 1
  • 1
  • 2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多