Rank elementos en una matriz usando Python / NumPy
Tengo una matriz de números y me gustaría crear otra matriz que represente el rango de cada elemento en la primera matriz. Estoy usando Python y NumPy.
Por ejemplo
array = [4,2,7,1]
ranks = [2,1,3,0]
Este es el mejor método que se me ocurrió:
array = numpy.array([4,2,7,1])
temp = array.argsort()
ranks = numpy.arange(len(array))[temp.argsort()]
Existen métodos mejores / más rápidos que eviten ordenar la matriz dos veces?