Neuanordnen der Matrix-Elemente mit Numpy
Habe ich ein NumPy matrix, die habe ich vereinfacht zu veranschaulichen:
a b c d e f
A = [[0, 1, 2, 3, 4, 5],
b [1, 0, 3, 4, 5, 6],
c [2, 3, 0, 5, 6, 7],
d [3, 4, 5, 0, 7, 8],
e [4, 5, 6, 7, 0, 9],
f [5, 6, 7, 8, 9, 0]]
wo die Zahl der "Kreuzungen" ist wichtig, aber Ihre Reihenfolge ist nicht richtig. Ich möchte zu re-ordnen Sie die Zeilen und Spalten, so dass die neue Reihenfolge ist [a, d, b, e, c, f] dieser Wert ist aber, dass ich den Aufruf "die Kreuzung" ist die gleiche.
Unten habe ich begonnen zu transformieren die matrix, wie ich will. Das füllen der 'e' - Zeile beinhaltet die Betrachtung der Schnittpunkte, die oben für (e,a) (= 4), dann (e,d) (=7) , dann (e,b) (=5), (e,e), (e,c) und (e,f)
a d b e c f
A1= [[0, 3, 1, 4, 2, 5],
d [3, 0, 4, 7, 5, 8],
b [1, 4, 0, 5, 3, 6],
e [4, 7, 5,
Kann bitte jemand vorschlagen, wie neu zu arrangieren, meine matrix in dieser Weise?
- Dies könnte helfen: stackoverflow.com/a/4857981/1142167
Du musst angemeldet sein, um einen Kommentar abzugeben.
edit: ich habe gerade stolperte über ein NumPy-Lösung, die verwendet erweiterte Indizierung:
Hier ist eine Reine Python-Lösung, die möglicherweise übertragbar auf NumPy:
Ergebnis:
Hier ist eine version, die ändert
A
im Ort:pprint
ist ein Modul für "pretty-printing" - Daten, es ist nur eine einfache Möglichkeit zum drucken arrays und dictionaries in dieser Zeile/Spalte format, statt nur auf eine einzige Zeile.Numpy bietet viele Methoden zur Bearbeitung von arrays, einschließlich Wälzkörper entlang einer axis, Rollen aller Achsen, Achsen vertauschen. Sie können eine Kombination von diesen, um die gewünschte Reihenfolge der Elemente