Seite 1 von 1

Array sortieren

Verfasst: Dienstag 15. April 2014, 08:46
von kl.feigling89
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 ?

Re: Array sortieren

Verfasst: Dienstag 15. April 2014, 09:05
von 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.

Re: Array sortieren

Verfasst: Dienstag 15. April 2014, 09:18
von /me
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.

Re: Array sortieren

Verfasst: Dienstag 15. April 2014, 09:33
von kl.feigling89
Danke hat wunderbar geklappt!