当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。