Maison > développement back-end > Tutoriel Python > Comment puis-je regrouper les éléments du tableau NumPy en fonction d'une colonne spécifique ?

Comment puis-je regrouper les éléments du tableau NumPy en fonction d'une colonne spécifique ?

DDD
Libérer: 2024-12-03 11:37:14
original
233 Les gens l'ont consulté

How Can I Group NumPy Array Elements Based on a Specific Column?

Grouper par fonction dans NumPy

NumPy fournit plusieurs fonctions pour la manipulation de tableaux, y compris des opérations de regroupement d'éléments. L'une de ces opérations est groupby, qui vous permet de regrouper des éléments dans un tableau en fonction d'une clé spécifiée.

Problème spécifique

Considérez le tableau suivant 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]])
Copier après la connexion

Supposons que vous souhaitiez regrouper les éléments en fonction de la première colonne. Dans ce cas, vous vous attendez à ce que le résultat soit :

array([[[275, 441, 494, 593]],
       [[679, 533, 686]],
       [[559, 219, 455]],
       [[605, 468, 692, 613]]], dtype=object)
Copier après la connexion

Solution

Bien qu'il n'y ait pas de fonction groupby directe dans NumPy, il est possible d'y parvenir en utilisant l'approche suivante :

# 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])
Copier après la connexion

Cette solution regroupe efficacement les éléments du tableau a en fonction de la première colonne, même si elle n'utilise pas explicitement un fonction groupby.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal