Dato un array 'a' vorrei ordinare l'array in base alle colonne "sort (a, axis = 0)" fare un po 'di cose nell'array e quindi annullare l'ordinamento. Con ciò non intendo riordinare ma sostanzialmente invertire il modo in cui ogni elemento è stato spostato. Suppongo che argsort() sia ciò di cui ho bisogno ma non mi è chiaro come ordinare un array con i risultati di argsort() o più importante applicare l'inverso/inverso di argsort()annulla o inverti argsort(), python
Ecco un piccolo dettaglio
ho un array una forma (a) = RXC devo ordinare ogni colonna
aargsort = a.argsort(axis=0) # May use this later
aSort = a.sort(axis=0)
ora media ogni fila
aSortRM = asort.mean(axis=1)
ora sostituire ogni col in una riga con la riga me un. c'è un modo migliore di questo
aWithMeans = ones_like(a)
for ind in range(r) # r = number of rows
aWithMeans[ind]* aSortRM[ind]
ora ho bisogno di annullare il genere che ho fatto nella prima fase. ????
Perché non puoi semplicemente fare una copia dell'array: 'a.copy()' prima di qualsiasi trasformazione o usare 'aSort = numpy .sort (axis = 0) '(che restituirà una copia ordinata)? btw, 'a.sort()' non restituisce nulla, quindi non c'è alcun motivo per assegnare il suo valore di ritorno. – jfs
@ J.F. Sebastian, grazie hai ragione l'ho risolto – Vincent