ein Array ‚a‘ Da würde Ich mag die Anordnung von Spalten sortieren „sortieren (a, Achse = 0)“ ein paar Sachen auf das Array tun und dann die Sortierung rückgängig machen. Damit meine ich nicht die Art und Weise, wie jedes Element verschoben wurde. Ich nehme an, dass argsort() das ist, was ich brauche, aber es ist mir nicht klar, wie man ein Array mit den Ergebnissen von argsort() sortiert oder, was noch wichtiger ist, das umgekehrte/umgekehrte von argsort()rückgängig machen oder umgekehrt argsort(), Python
Hier ist ein wenig mehr Detail
ich habe ein Array ein, die Form (a) = RXC ich brauche jede Spalte
aargsort = a.argsort(axis=0) # May use this later
aSort = a.sort(axis=0)
nun jede Reihe im Durchschnitt zu sortieren
aSortRM = asort.mean(axis=1)
nun jede col in einer Reihe mit der Reihe ersetzen mich ein. gibt es einen besseren Weg, als diese
aWithMeans = ones_like(a)
for ind in range(r) # r = number of rows
aWithMeans[ind]* aSortRM[ind]
Jetzt muss ich die Sorte, die ich im ersten Schritt tat rückgängig zu machen. ????
Warum können Sie nicht einfach eine Kopie des Arrays erstellen: 'a.copy()' vor irgendwelchen Transformationen oder verwenden Sie 'aSort = numpy .sort (axis = 0) '(wird die sortierte Kopie zurückgegeben)? btw, 'a.sort()' gibt nichts zurück, daher gibt es keinen Sinn, seinen Rückgabewert zuzuweisen. – jfs
@ J.F. Sebastian, Danke du hast recht Ich habe es behoben – Vincent