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]])
Attendu Sortie :
array([[[275, 441, 494, 593]], [[679, 533, 686]], [[559, 219, 455]], [[605, 468, 692, 613]]], dtype=object)
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()]
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:])
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 :
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!