将向量的元素从1重新排列到向量的长度

时间:2016-12-05 10:31:26

标签: r python-2.7 vector

我编写了一个R函数,它将一个向量作为输入并作为输出返回另一个向量,以便将输入向量的最小值替换为1,将大于最小值的元素替换为2等直到最大值向量的数字,由向量的长度代替。这是我的功能:

  resc<-function(x){
   m<-length(unique(x))
   nor<-rep(0,length(x))
   x_2<-x
   for(i in 1:m){
     temp<-min(x_2)
     temp_2<-which(x==temp)
     nor[temp_2]<-i
     x_2<-x_2[-which(x_2==temp)]
   }
   return(nor)
 }

如何在Python中重写此功能?我试过了,但是我对命令的使用感到有些困惑&#39;其中&#39;

1 个答案:

答案 0 :(得分:1)

正如Ronak和Nicola所说,你所需要的只是rank函数来获得相同的结果。

在Python中,我会尝试:

import scipy.stats as ss
ss.rankdata([array])