python-3.x 为什么NumPy中的分位数函数返回的值介于输入数组的值之间?

but5z9lq  于 2023-03-04  发布在  Python
关注(0)|答案(1)|浏览(107)

我试图理解numpy.quantile函数是如何工作的。
我得到了0.25和0.5分位数的期望值,但0.75分位数似乎做了一些不同的事情。
数据:13、21、21、40、42、48、55、72
0.25×(8+1)= 2.25 →所选数据集的第2个值→ 21
0.50×(8+1)= 4.5 →第4和第5个值的平均值→ 41
0.75×(8+1)= 6.75 →所选数据集的第7个值→ 55
为什么np.quantile给予49.75作为0.75分位数的答案,而不是55?
代码和输出:

import numpy as np

values = [13, 21, 21, 40, 42, 48, 55, 72]
print(len(values))
x = np.quantile(values, [0, 0.25, 0.5, 0.75, 1])
print(x)

输出:

8
[13.   21.   41.   49.75 72.  ]
rjee0c15

rjee0c151#

您必须为numpy.quantile指定正确的方法,即在您的情况下,更高的值将起作用:

import matplotlib.pyplot as plt
import numpy as np

values = [13, 21, 21, 40, 42, 48, 55, 72]
print(len(values))
x = np.quantile(values, [0, 0.25, 0.5, 0.75, 1], method='higher')
print(x)

文件地址:https://numpy.org/doc/stable/reference/generated/numpy.quantile.html

相关问题