I verstanden, dass ein numpy Array arr
säulenchromatographisch (nur für eine bestimmte Spalte, beispielsweise seine 2. Spalte) Sortieranlage mit getan werden kann:Sortierung ein Array von Zeilen in Python
arr[arr[:,1].argsort()]
wie ich dies verstanden Codebeispiel funktioniert: argsort
sortiert die Werte der 2. Spalte von arr
und gibt die entsprechenden Indizes als ein Array. Dieses Array wird arr
als Zeilennummern gegeben. Bin ich in meiner Interpretation richtig?
Jetzt frage ich mich, wenn ich das Array arr
in Bezug auf die 2. Reihe statt der 2. Spalte sortieren möchte? Ist es am einfachsten, das Array vor dem Sortieren zu transponieren und es nach dem Sortieren zurück zu transponieren, oder gibt es eine Möglichkeit, es wie zuvor zu tun (indem wir ein Array mit der Anzahl der Spalten angeben, die wir anzeigen wollen)?
Anstatt (n,n)array[(n,)array]
zu tun (n ist die Größe des 2d-Array) Ich habe versucht, etwas wie (n,n)array[(n,1)array]
zu tun, um die Nummern der Spalten anzuzeigen, aber es funktioniert nicht.
Beispiel von dem, was ich will:
arr = [[11,25],[33,4]]
=> Basis Array
arr_col2=[[33,4],[11,25]]
=> array ich mit argsort()
bekam
arr_row2=[[25,11],[4,33]]
=> Array habe ich versucht, mit argsort()
auf einfache Art und Weise zu bekommen, aber war nicht erfolgreich
Mögliches Duplikat von [Wie sortiere ich 2d Array für Zeile in Python?] (Http: // stackoverflow.com/questions/2173797/how-to-sort-2d-array-by-row-in-python) – Stefano
Ich vermute, dass dies ein numpy Array ist, kein Vanillepython-Array - in diesem Fall ist es kein Duplikat dieser Frage (obwohl wahrscheinlich schon woanders gefragt wurde) –
Es ist in der Tat kein Duplikat. Was ich will, ist zu wissen, ob es einen ähnlichen Weg zu der Methode gibt, die ich beschrieben habe, um ein numpliges Array in einer bestimmten Zeile zu sortieren, ohne die Spalten zu mischen (statt eine Spalte zu sortieren). Die Hauptsache, die ich nicht bekomme, ist, wie 2dray [1darray] funktioniert. – JoVe