Gruppieren nach Funktion in NumPy
NumPy bietet mehrere Funktionen zur Array-Manipulation, einschließlich Operationen zum Gruppieren von Elementen. Eine solche Operation ist Groupby, mit der Sie Elemente in einem Array basierend auf einem angegebenen Schlüssel gruppieren können.
Spezifisches Problem
Betrachten Sie das folgende Array a:
a = 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]])
Angenommen, Sie möchten die Elemente basierend auf der ersten Spalte gruppieren. In diesem Fall würden Sie erwarten, dass die Ausgabe wie folgt aussieht:
array([[[275, 441, 494, 593]], [[679, 533, 686]], [[559, 219, 455]], [[605, 468, 692, 613]]], dtype=object)
Lösung
Obwohl es in NumPy keine direkte Groupby-Funktion gibt, ist es möglich, dies zu erreichen unter Verwendung des folgenden Ansatzes:
# Sort the array by the first column a = a[a[:, 0].argsort()] # Find the unique values in the first column as keys keys = np.unique(a[:, 0]) # Create an array to hold the grouped elements grouped = [] # Iterate through the keys for key in keys: # Create a mask to select elements with the given key mask = (a[:, 0] == key) # Append the selected elements to the grouped array grouped.append(a[mask][:, 1])
Diese Lösung gruppiert die Elemente im a-Array effizient basierend auf der ersten Spalte, auch wenn a nicht explizit verwendet wird Groupby-Funktion.
Das obige ist der detaillierte Inhalt vonWie kann ich NumPy-Array-Elemente basierend auf einer bestimmten Spalte gruppieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!