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


Python SciPy stats.rankdata用法及代碼示例


本文簡要介紹 python 語言中 scipy.stats.rankdata 的用法。

用法:

scipy.stats.rankdata(a, method='average', *, axis=None, nan_policy='propagate')#

為數據分配等級,適當地處理關係。

默認情況下(axis=None),數據數組首先被展平,然後返回一個平麵數組。如果需要,單獨將秩數組重塑為數據數組的形狀(參見示例)。

排名從 1 開始。方法參數控製如何將等級分配給相等的值。看[1]進一步討論排名方法。

參數

a array_like

要排名的值數組。

method {‘average’, ‘min’, ‘max’, ‘dense’, ‘ordinal’},可選

用於為綁定元素分配等級的方法。可以使用以下方法(默認為‘average’):

  • ‘average’: The average of the ranks that would have been assigned to all the tied values is assigned to each value.

  • ‘min’: The minimum of the ranks that would have been assigned to all the tied values is assigned to each value. (This is also referred to as “competition” ranking.)

  • ‘max’: The maximum of the ranks that would have been assigned to all the tied values is assigned to each value.

  • ‘dense’: Like ‘min’, but the rank of the next highest element is assigned the rank immediately after those assigned to the tied elements.

  • ‘ordinal’: All values are given a distinct rank, corresponding to the order that the values occur in a.

axis {無,整數},可選

執行排名的軸。如果 None ,數據數組首先被展平。

nan_policy {‘propagate’, ‘omit’, ‘raise’},可選

定義當輸入包含 nan 時如何處理。以下選項可用(默認為‘propagate’):

  • ‘propagate’: propagates nans through the rank calculation

  • ‘omit’: performs the calculations ignoring nan values

  • ‘raise’: raises an error

注意

當 nan_policy 為 ‘propagate’ 時,輸出是所有 nan 的數組,因為相對於輸入中 nan 的排名未定義。當nan_policy為‘omit’時,對其他值進行排序時忽略a中的nan,輸出的對應位置為nan。

返回

ranks ndarray

一個大小等於 a 大小的數組,包含排名分數。

參考

例子

>>> import numpy as np
>>> from scipy.stats import rankdata
>>> rankdata([0, 2, 3, 2])
array([ 1. ,  2.5,  4. ,  2.5])
>>> rankdata([0, 2, 3, 2], method='min')
array([ 1,  2,  4,  2])
>>> rankdata([0, 2, 3, 2], method='max')
array([ 1,  3,  4,  3])
>>> rankdata([0, 2, 3, 2], method='dense')
array([ 1,  2,  3,  2])
>>> rankdata([0, 2, 3, 2], method='ordinal')
array([ 1,  2,  4,  3])
>>> rankdata([[0, 2], [3, 2]]).reshape(2,2)
array([[1. , 2.5],
      [4. , 2.5]])
>>> rankdata([[0, 2, 2], [3, 2, 5]], axis=1)
array([[1. , 2.5, 2.5],
       [2. , 1. , 3. ]])
>>> rankdata([0, 2, 3, np.nan, -2, np.nan], nan_policy="propagate")
array([nan, nan, nan, nan, nan, nan])
>>> rankdata([0, 2, 3, np.nan, -2, np.nan], nan_policy="omit")
array([ 2.,  3.,  4., nan,  1., nan])

相關用法


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