Kann NumPy Daten nach einer bestimmten Spalte gruppieren?
Einführung:
Das Gruppieren von Daten ist ein entscheidender Vorgang in vielen Datenanalyseszenarien. NumPy, eine leistungsstarke numerische Bibliothek in Python, bietet verschiedene Funktionen zum Bearbeiten von Arrays, es fehlt jedoch eine spezielle Gruppierungsfunktion. Dieser Artikel zeigt, wie man in NumPy eine Gruppierung ohne die explizite Verwendung einer dedizierten Funktion erreicht.
Frage:
Gibt es in NumPy eine Funktion, um ein Array nach seiner Gruppierung zu gruppieren? erste Spalte, wie im bereitgestellten Array gezeigt?
array([[ 1, 275], [ 1, 441], [ 1, 494], [ 1, 593], [ 2, 679], [ 2, 533], [ 2, 686], [ 3, 559], [ 3, 219], [ 3, 455], [ 4, 605], [ 4, 468], [ 4, 692], [ 4, 613]])
Erwartet Ausgabe:
array([[[275, 441, 494, 593]], [[679, 533, 686]], [[559, 219, 455]], [[605, 468, 692, 613]]], dtype=object)
Antwort:
Obwohl NumPy nicht explizit eine „Gruppieren nach“-Funktion bereitstellt, bietet es einen alternativen Ansatz, der von Eelco Hoogendoorns inspiriert ist Bibliothek. Dieser Ansatz basiert auf der Annahme, dass die erste Spalte des Arrays immer größer wird. Wenn dies nicht der Fall ist, muss das Array nach der ersten Spalte sortiert werden mit:
a = a[a[:, 0].argsort()]
Unter der Annahme steigender Werte der ersten Spalte führt der folgende Code die Gruppierungsoperation aus:
np.split(a[:, 1], np.unique(a[:, 0], return_index=True)[1][1:])
Dieser Code gruppiert die Array-Elemente effektiv in Unterarrays, basierend auf den eindeutigen Werten in der ersten Spalte. Jedes Subarray stellt eine Gruppe dar, die die zweiten Spaltenwerte für alle Elemente mit demselben ersten Spaltenwert enthält.
Zusätzliche Überlegungen:
Daher bietet NumPy eine flexible und effiziente Möglichkeit, Daten durch die Verwendung von Array-Manipulations- und Sortierfunktionen zu gruppieren, auch ohne eine spezielle Gruppierungsfunktion.
Das obige ist der detaillierte Inhalt vonKann NumPy Daten effizient basierend auf den eindeutigen Werten einer Spalte gruppieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!