Maison > développement back-end > Tutoriel Python > NumPy peut-il regrouper efficacement les données en fonction des valeurs uniques d'une colonne ?

NumPy peut-il regrouper efficacement les données en fonction des valeurs uniques d'une colonne ?

DDD
Libérer: 2024-12-05 09:32:10
original
756 Les gens l'ont consulté

Can NumPy Group Data Efficiently Based on a Column's Unique Values?

NumPy peut-il regrouper les données par une colonne donnée ?

Introduction :

Le regroupement des données est une opération cruciale dans de nombreux scénarios d’analyse de données. NumPy, une puissante bibliothèque numérique en Python, propose diverses fonctions pour manipuler des tableaux, mais il lui manque une fonction de regroupement dédiée. Cet article montre comment réaliser un regroupement dans NumPy sans l'utilisation explicite d'une fonction dédiée.

Question :

Existe-t-il une fonction dans NumPy pour regrouper un tableau par son première colonne, comme indiqué dans le tableau fourni ?

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

Attendu Sortie :

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

Réponse :

Bien que NumPy ne fournisse pas explicitement de fonction « regrouper par », il propose une approche alternative inspirée de celle d'Eelco Hoogendoorn. bibliothèque. Cette approche repose sur l’hypothèse que la première colonne du tableau est toujours croissante. Si ce n'est pas le cas, trier le tableau par première colonne est nécessaire en utilisant :

a = a[a[:, 0].argsort()]
Copier après la connexion

En utilisant l'hypothèse d'augmentation des valeurs de la première colonne, le code suivant effectue l'opération de regroupement :

np.split(a[:, 1], np.unique(a[:, 0], return_index=True)[1][1:])
Copier après la connexion

Ce code regroupe efficacement les éléments du tableau en sous-tableaux en fonction des valeurs uniques de la première colonne. Chaque sous-tableau représente un groupe contenant les valeurs de la deuxième colonne pour tous les éléments ayant la même valeur de première colonne.

Considérations supplémentaires :

  • La complexité de cette méthode est O (n log(n)) en raison de l'opération de tri.
  • Les listes de résultats sont des tableaux NumPy, éliminant le besoin d'opérations de conversion pour les opérations ultérieures Opérations NumPy.
  • Comparaison des performances : Il a été démontré empiriquement que cette méthode est plus rapide que d'autres approches de regroupement, notamment Pandas et defaultdicts, pour des ensembles de données plus petits.

Par conséquent, NumPy fournit un moyen flexible et efficace de regrouper des données en utilisant des fonctions de manipulation et de tri de tableaux, même sans regroupement dédié. fonction.

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