當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python NumPy quantile方法用法及代碼示例

Numpy 的 quantile(~) 方法返回指定分位數處的插值。請注意,此方法與 percentile(~) 完全相同,隻是 quantile(~) 方法采用 0 到 1 之間的值,而不是 0 到 100。

參數

1. a | array-like

輸入數組。

2. q | array-likefloat

要計算的所需分位數,必須介於 0(含)和 1(含)之間。

3. axis | Noneint | optional

計算百分位數所沿的軸。對於二維數組,允許的值如下:

意義

0

按列計算分位數

1

按行計算分位數

None

計算展平輸入數組的百分位

默認情況下,axis=None

4. out | Numpy array | optional

您可以將計算結果放入 out 指定的數組中,而不是創建新數組。

5. overwrite_input | boolean | optional

是否將中間計算保存到輸入數組a。這會節省內存空間,但也會使 a 的內容未定義。默認情況下,overwrite_input=False

6. interpolation | string | optional

當給定百分位數位於兩個 data-points 之間時,如何對值進行插值,例如 ij,其中 i<j

意義

linear

標準線性插補

lower

返回i

higher

返回j

midpoint

返回(i+j)/2

nearest

返回 ij ,以較接近者為準。

默認情況下,interpolation="linear"

返回值

如果 q 是標量,則返回標量。否則,返回一個 Numpy 數組。

例子

計算單個百分位數

要獲取 0.5 分位數處的值:

a = np.array([5,6,7,8,9])
np.quantile(a, 0.5)



7.0

計算多個百分位數

要獲取第 50 個和第 75 個百分位數的值:

a = np.array([5,6,7,8,9])
np.quantile(a, [0.5, 0.75])



array([7., 8.])

更改插值方法

線性

考慮指定分位數對應的值不存在的情況:

a = np.array([5,6,7,8,9])
np.quantile(a, 0.45)   # interpolation="linear"



6.800000000000001

這裏,由於數組中不存在第 45 個百分位數對應的值,因此該值在 6 和 7 之間線性插值。

降低
a = np.array([5,6,7,8,9])
np.quantile(a, 0.45, interpolation="lower")



6

同樣,由於 45% 分位數不存在,我們需要執行插值。我們知道它在值 6 和 7 之間。通過傳入 "lower" ,我們選擇較低的值,即本例中的 6。

更高
a = np.array([5,6,7,8,9])
np.quantile(a, 0.45, interpolation="higher")



7

"lower" 相同的邏輯,但我們采用較高的值。

最近的
a = np.array([5,6,7,8,9])
np.quantile(a, 0.45, interpolation="nearest")



7

通過傳入"nearest",我們不再總是選擇較低或較高的值,而是采用最接近的值。這裏,從 interpolation="linear" 的輸出來看,我們知道插值更接近 7 而不是 6。

中點
a = np.array([5,6,7,8,9])
np.quantile(a, 0.45, interpolation="midpoint")



6.5

在這裏,我們隻取下限值和上限值的中點,因此 (6+7)/2=6.5

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 NumPy | quantile method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。