scipy.stats.rankdata¶
- scipy.stats.rankdata(a, method='average', *, axis=None)[源代码]¶
给数据分配等级,适当地处理关系。
默认情况下, (
axis=None
),则首先平坦化数据数组,并返回平坦的秩数组。如果需要,请将秩数组单独重塑为数据数组的形状(请参见示例)。排名从1开始。 method 参数控制如何将等级分配给相等的值。看见 [1] 以进一步讨论排名方法。
- 参数
- aarray_like
要排序的值数组。
- method{‘平均值’,‘最小值’,‘最大值’,‘密集’,‘序号’},可选
用于将等级分配给平局元素的方法。有以下方法可用(默认值为“Average”):
“平均值”:将分配给所有并列数值的平均排名分配给每个数值。
‘min’:将分配给所有并列数值的最低等级分配给每个数值。(这也称为“竞争”排名。)
‘max’:将分配给所有平局值的最大等级分配给每个值。
“密集”:类似于“min”,但下一个最高元素的排名紧跟在分配给绑定元素的排名之后。
‘序数’:所有值都被赋予不同的等级,与值出现的顺序相对应 a 。
- axis{无,int},可选
要沿其执行排名的轴。如果
None
,则首先展平数据阵列。
- 退货
- ranksndarray
大小等于 a ,包含等级分数。
参考文献
示例
>>> 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. ]])