2014-06-16 90 views
0

我想實現是值的列表的「最高到最低」排名中,rankdataSciPy的rankdata反向最高到最低

基本上反向因此,而不是:

a = [1,2,3,4,3,2,3,4] 
rankdata(a).astype(int) 
array([1, 2, 5, 7, 5, 2, 5, 7]) 

我想要得到這個:

array([7, 6, 3, 1, 3, 6, 3, 1]) 

我在rankdata文檔中找不到任何東西來做到這一點。

+4

是不是隻是'len(a) - rankdata(...)'? – Pavel

+1

您確定要將'rankdata(a)'的結果轉換爲整數嗎?當您使用默認方法時,綁定值的等級是綁定值的序數平均值。你可能想要考慮一個返回整數值的方法,比如'method ='ordinal'',或者實際上任何方法*,除了*默認值,即'average''。 –

回答

4

可能你不想要一個愚蠢的答案,但不能只是減去長度,即從「高」到「低」排列的「反向」?

a = [1,2,3,4,3,2,3,4] 
len(a) - rankdata(a).astype(int) 
array([7, 6, 3, 1, 3, 6, 3, 1]) 
+0

帕維爾說... – jonnybazookatone