Dada una matriz 'a' Me gustaría ordenar la matriz por columnas "ordenar (a, eje = 0)" hacer algunas cosas en la matriz y luego deshacer la ordenación. Por eso, no me refiero a re clasificar, sino básicamente a revertir cómo se movió cada elemento. Supongo que argsort() es lo que necesito pero no me queda claro cómo ordenar una matriz con los resultados de argsort() o más importante aplicar el inverso/inverso de argsort()deshacer o revertir argsort(), python
Aquí hay un poco más de detalle
tengo una matriz a, forma (a) = RXC que necesito para ordenar cada columna
aargsort = a.argsort(axis=0) # May use this later
aSort = a.sort(axis=0)
ahora un promedio de cada fila
aSortRM = asort.mean(axis=1)
ahora reemplazar cada col en una fila con la fila yo un. hay una manera mejor que esto
aWithMeans = ones_like(a)
for ind in range(r) # r = number of rows
aWithMeans[ind]* aSortRM[ind]
ahora tengo que deshacer el tipo que hice en el primer paso. ????
¿Por qué no puede simplemente hacer una copia de la matriz: 'a.copy()' antes de cualquier transformación o usar 'aSort = numpy .sort (axis = 0) '(que devolverá la copia clasificada)? Por cierto, 'a.sort()' no devuelve nada, por lo tanto, no tiene sentido asignar su valor de retorno. – jfs
@ J.F. Sebastian, gracias, tienes razón, lo arreglé – Vincent