Я написал функцию R, которая принимает вектор в качестве входного сигнала и возвращает в качестве вывода другой вектор, так что минимум входного вектора заменяется на 1, элемент который больше минимального, заменяется на 2 и т. д. до максимума вектора, который заменяется длиной вектора. Это моя функция:Переупорядочить элементы вектора от 1 до длины вектора
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? Я попытался, но я был немного смущен использованием команды «which».
Для чего это стоит, что функция уже существует в R, и это 'rank'. Не знаю, что такое python, чтобы рассказать, как это сделать. – nicola
Для R вы можете использовать 'rank', который дает вам ранг этого элемента в векторе и для python, возможно, [Ранжирование элементов в массиве с использованием Python/NumPy] (http://stackoverflow.com/questions/5284646/rank -items-in-a-array-using-python-numpy) –
Спасибо вам за интуицию на языке R @nicola и @Ronak! Я думаю, что это то, что я ищу! –