Effiziente Array-Gruppierung mit NumPy
NumPy bietet zwar möglicherweise keine sofort einsatzbereite Funktion, die speziell für die Gruppierung von Arrays entwickelt wurde sind vielseitige Techniken, die effektiv ähnliche Ergebnisse erzielen können.
Inspiriert von Eelco's Bibliothek
Ein Ansatz ist von der Bibliothek von Eelco Hoogendoorn inspiriert und vereinfacht sie durch Ausnutzung der Annahme, dass die erste Spalte des Eingabearrays monoton ansteigt. Wenn nicht, kann es zuerst mit a = a[a[:, 0].argsort()] sortiert werden.
np.split(a[:, 1], np.unique(a[:, 0], return_index=True)[1][1:])
Uniquely Identifying Groups
This Das Snippet nutzt np.unique(), um eindeutige Werte in der ersten Spalte zu identifizieren und deren Indizes zurückzugeben. Diese Indizes werden verwendet, um die zweite Spalte in separate Unterarrays aufzuteilen, die jede Gruppe darstellen.
Zeitkomplexität und Leistung
Diese Methode weist eine O(n)-Komplexität auf und ist daher hoch effizient. Empirische Timeit-Messungen an Arrays mit unterschiedlichen Gruppengrößen bestätigen seine Leistungsvorteile gegenüber anderen Ansätzen wie Pandas, Numpy-Indexed und Defaultdict.
Alternative Lösungen
Über den vorgestellten Ansatz hinaus , NumPy-basierte Techniken wie numpy_groupies können auch für die Gruppierung untersucht werden Operationen.
Zusätzliche Überlegungen
Wenn die erste Spalte des Eingabearrays nicht sortiert ist, wird empfohlen, sie vor der Gruppierung zu sortieren, um genaue Ergebnisse sicherzustellen. Beachten Sie, dass bestimmte Sortieralgorithmen wie argsort eine zeitliche Komplexität von O(n log(n)) haben.
Das obige ist der detaillierte Inhalt vonWie kann ich NumPy-Arrays effizient gruppieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!