Heim > Artikel > Backend-Entwicklung > Wie ordne ich Elemente in einem Array ohne redundante Sortierung effizient ein?
Elemente in einem Array ohne redundante Sortierung ordnen
Bei einem Array von Zahlen ist es oft notwendig, die Rangfolge jedes Elements zu bestimmen. Traditionell erfordert dies eine zweifache Sortierung des Arrays, was bei großen Datensätzen ineffizient sein kann. Allerdings kann die Verwendung eines effizienteren Ansatzes, der eine doppelte Sortierung vermeidet, die Leistung deutlich verbessern.
Eine alternative Methode nutzt die argsort-Funktion in NumPy wie folgt:
numpy.array([4,2,7,1]) temp = array.argsort() ranks = numpy.arange(len(array))[temp.argsort()]
Dieser Ansatz ist zwar effektiv, beinhaltet aber dennoch zwei Iterationen durch das Array.
Optimierter Ansatz mit Double Argsort
Um den Ranking-Prozess zu optimieren, besteht eine effizientere Strategie darin, Argsort zweimal zu verwenden:
array = numpy.array([4,2,7,1]) order = array.argsort() ranks = order.argsort()
Indem wir zuerst das Array sortieren, um die Reihenfolge zu erhalten, und dann argsort auf diese Reihenfolge anwenden, können wir die Ränge der Elemente ohne redundante Sortierung bestimmen.
Dieser optimierte Ansatz zeigt eine verbesserte Effizienz, insbesondere bei großen Datensätzen. da ein zusätzlicher Sortiervorgang entfällt. Denken Sie außerdem beim Arbeiten mit mehrdimensionalen Arrays daran, das Achsenargument in argsort anzugeben, um die Sortierachse entsprechend zu steuern.
Das obige ist der detaillierte Inhalt vonWie ordne ich Elemente in einem Array ohne redundante Sortierung effizient ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!