为什么numpy的第50百分位数不会返回平均数?

时间:2015-08-15 05:48:43

标签: python numpy

我发现numpy的第50个百分位并不能返回一个完美的意思。为什么是这样?通过定义,第50个百分位应该是平均值。

In [1]: s = [1.3424,4.221124,5.11,2.4432]

In [2]: sum(s)/len(s)
Out[2]: 3.2791810000000003

In [3]: np.percentile(s,50)
Out[3]: 3.3321619999999998

In [15]: s = [1.3424,4.221124,5.11,2.4432]
In [4]: sum(s)/len(s)
Out[4]: 3.2791810000000003

In [5]: np.percentile(s,50)
Out[5]: 3.3321619999999998

1 个答案:

答案 0 :(得分:3)

文档说明在q=50它不返回平均值而是返回中位数:

  

如果q = 50,则此函数与中位数相同,如果q = 0,则与最小值相同,如果q = 100,则与最大值相同。

请参阅http://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.percentile.html