Array sortieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
kl.feigling89
User
Beiträge: 42
Registriert: Montag 24. Februar 2014, 14:47

Hallo Jungs habe mal eine Frage, wie kann ich ein Numpy array nach der größe sortieren?
Mein Array sieht so aus:
[[1,2,3,4],[2,3,2,3],[2,3,2,3],[23,4,4,2],[4,5,3,4],[4,3,2,4],...,[3,2,3,4]]
Es soll so sortiert werden, dass die größte Fläche an erster stelle steht. Die vorderen beiden Koordinaten zeigen den startpunkt und die hintern beiden die höhe und die breite der Fläche.

gibt es eine Funktion dafür ?
BlackJack

@kl.feigling89: Erzeuge ein Array das die Flächengrössen enthält, bestimme mit `numpy.argsort()` die Indizes in der sortierten Reihenfolge, und benutze diese um ein sortiertes Array aus dem ursprünglichen Array zu machen.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Mit einer klassischen Liste sähe das so aus:

Code: Alles auswählen

>>> data = [[1,2,3,4],[2,3,2,3],[2,3,2,3],[23,4,4,2],[4,5,3,4],[4,3,2,4],[3,2,3,4]]
>>> >>> data.sort(key=lambda x: x[2]*x[3], reverse=True)
>>> data
[[1, 2, 3, 4], [4, 5, 3, 4], [3, 2, 3, 4], [23, 4, 4, 2], [4, 3, 2, 4], [2, 3, 2, 3], [2, 3, 2, 3]]
Ich kenne numpy jetzt nicht wirklich, aber vielleicht gibt es da ja eine analoge sort-Methode.
kl.feigling89
User
Beiträge: 42
Registriert: Montag 24. Februar 2014, 14:47

Danke hat wunderbar geklappt!
Antworten