Rank itens em uma matriz usando Python / NumPy

Tenho uma matriz de números e gostaria de criar outra matriz que represente a classificação de cada item na primeira matriz. Estou usando Python e NumPy.

Por exemplo

array = [4,2,7,1]
ranks = [2,1,3,0]

Aqui está o melhor método que eu criei:

array = numpy.array([4,2,7,1])
temp = array.argsort()
ranks = numpy.arange(len(array))[temp.argsort()]

Existem métodos melhores / mais rápidos que evitam classificar a matriz duas veze

questionAnswers(9)

yourAnswerToTheQuestion