[英]What does numpy's percentile function do exactly?
根據我的理解, numpy的百分位計算數據的第q百分位數。
但它是如何做到的呢?
比如說,給定x = np.array([1.3, 1.7, 2.4, 2.8, 3.5, 5.6, 6.6, 7.7, 8.8, 9.9])
(里面有10個浮點數)。
如果我做np.percentile(x, 100)
,它會返回9.9000000000000004
。
如果我做np.percentile(x, 90)
,它應該返回8.8
,對嗎? 但它回饋了8.9100000000000001
。
為什么會有這樣的差異? 這些差異是否可以接受?
從版本1.9.0開始,Numpy的百分位函數有一個interpolation
參數, 在這樣的文檔中描述:
插值 :{'線性','低','高','中點','最近'}
當所需的分位數位於兩個數據點i和j之間時,此可選參數指定要使用的插值方法:
- 線性:i +(j - i)*分數,其中分數是由i和j包圍的索引的小數部分。
- 更低:我
- 更高:j。
- 最近的:我或j哪個最近。
- 中點:(i + j)/ 2。
它默認為線性 。 如果您想從示例中獲得8.8
,請運行:
np.percentile(x, 90, interopolation='lower')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.