Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich GroupBy-Funktionalität in NumPy ohne eine dedizierte Funktion erreichen?

Wie kann ich GroupBy-Funktionalität in NumPy ohne eine dedizierte Funktion erreichen?

Susan Sarandon
Susan SarandonOriginal
2024-11-26 04:38:13174Durchsuche

How Can I Achieve GroupBy Functionality in NumPy Without a Dedicated Function?

GroupBy-Funktionalität in NumPy

Das Gruppieren von Daten ist eine häufige Aufgabe bei der Datenanalyse, sodass Sie Daten basierend auf bestimmten Kriterien aggregieren und organisieren können. Obwohl NumPy von Haus aus keine dedizierte Funktion zum Gruppieren nach Funktion bereitstellt, gibt es mehrere Ansätze, mit denen Sie diese Funktionalität erreichen können.

Eine Methode besteht darin, die Funktion np.split() in Kombination mit np.unique() zu verwenden. . Dieser Ansatz basiert auf der Annahme, dass die erste Spalte Ihres Arrays, die als Gruppierungsschlüssel dient, immer größer wird. Indem Sie das Array nach dieser Spalte sortieren und die eindeutigen Werte erhalten, können Sie das Array anschließend mit np.split() in Gruppen aufteilen.

Zum Beispiel das folgende Array:

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]])

Um dieses Array nach der ersten Spalte zu gruppieren, können Sie den folgenden Code verwenden:

a = a[a[:, 0].argsort()]
np.split(a[:,1], np.unique(a[:, 0], return_index=True)[1][1:])

Dadurch wird das gewünschte Ergebnis erzielt Ausgabe:

array([[[275, 441, 494, 593]],
       [[679, 533, 686]],
       [[559, 219, 455]],
       [[605, 468, 692, 613]]], dtype=object)

Dieser Ansatz bietet mehrere Vorteile:

  • Es vermeidet die Notwendigkeit expliziter Schleifen und macht es effizienter.
  • Die Ergebnislisten sind NumPy Arrays, die weitere NumPy-Operationen ohne Konvertierung ermöglichen.
  • Es hat eine Komplexität von O(n) (oder O(n log(n)) mit Sortierung).

Obwohl NumPy selbst möglicherweise keine bestimmte Gruppierungsfunktion hat, bieten die oben beschriebenen Methoden effektive Möglichkeiten, Gruppierungsvorgänge für Ihre Daten durchzuführen, sodass Sie diese effektiv organisieren und analysieren können.

Das obige ist der detaillierte Inhalt vonWie kann ich GroupBy-Funktionalität in NumPy ohne eine dedizierte Funktion erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn