Sortieren eines zweidimensionalen Array mit mehreren Achsen

Ich habe ein 2D-numpy-array der Form (N,2), die halten die N Punkte (x-und y-Koordinaten). Zum Beispiel:

array([[3, 2],
       [6, 2],
       [3, 6],
       [3, 4],
       [5, 3]])

Ich würde gerne zu Sortieren, so dass meine Punkte sind sortiert nach x-Koordinate, dann nach y in den Fällen, wo die x-Koordinate ist die gleiche. Also das array soll so Aussehen:

array([[3, 2],
       [3, 4],
       [3, 6],
       [5, 3],
       [6, 2]])

Ob dies eine normale Python-Liste, würde ich einfach definieren, einen Komparator zu tun, was ich will, aber soweit ich das beurteilen kann, numpy die Funktion Sortieren wird nicht akzeptiert Benutzer-definierte Komparatoren. Irgendwelche Ideen?


EDIT: vielen Dank für die Ideen! Ich habe ein quick-test mit 1000000 zufälligen ganzzahligen Punkte, und zudem diejenigen, die ich laufen konnte (sorry, kann kein upgrade numpy im moment).

Mine:   4.078 secs 
mtrw:   7.046 secs
unutbu: 0.453 secs

InformationsquelleAutor der Frage perimosocordiae | 2010-04-24

Schreibe einen Kommentar