Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment regrouper des variables en Python à l’aide de numpy.digitize()



Souvent, vous pourriez être intéressé à placer les valeurs d’une variable dans des « bacs » en Python.

Heureusement, cela est facile à faire en utilisant la fonction numpy.digitize() , qui utilise la syntaxe suivante :

numpy.digitize(x, bacs, droite=False)

où:

  • x : tableau à regrouper.
  • bins : tableau de bacs.
  • right : Indique si les intervalles incluent le bord droit ou gauche du bac. Par défaut, l’intervalle n’inclut pas le bord droit.

Ce tutoriel montre plusieurs exemples d’utilisation pratique de cette fonction.

Exemple 1 : placer toutes les valeurs dans deux bacs

Le code suivant montre comment placer les valeurs d’un tableau dans deux bacs :

  • 0 si x < 20
  • 1 si x ≥ 20
import numpy as np

#create data
data = [2, 4, 4, 7, 12, 14, 19, 20, 24, 31, 34]

#place values into bins
np.digitize(data, bins=[20])

array([0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1])

Exemple 2 : placer toutes les valeurs dans trois bacs

Le code suivant montre comment placer les valeurs d’un tableau dans trois bacs :

  • 0 si x < 10
  • 1 si 10 ≤ x < 20
  • 2 si x ≥ 20
import numpy as np

#create data
data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34]

#place values into bins
np.digitize(data, bins=[10, 20])

array([0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2])

Notez que si nous spécifions right= True alors les valeurs seraient placées dans les bacs suivants :

  • 0 si x ≤ 10
  • 1 si 10 < x ≤ 20
  • 2 si x > 20

Chaque intervalle inclurait le bord droit du bac. Voici à quoi cela ressemble :

import numpy as np

#create data
data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34]

#place values into bins
np.digitize(data, bins=[10, 20], right=True)

array([0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2])

Exemple 3 : placer toutes les valeurs dans quatre bacs

Le code suivant montre comment placer les valeurs d’un tableau dans trois bacs :

  • 0 si x < 10
  • 1 si 10 ≤ x < 20
  • 2 si 20 ≤ x < 30
  • 3 si x ≥ 30
import numpy as np

#create data
data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34]

#place values into bins
np.digitize(data, bins=[10, 20, 30])

array([0, 0, 0, 0, 1, 1, 2, 2, 2, 3, 3])

Exemple 4 : compter la fréquence de chaque bac

Une autre fonction NumPy utile qui complète la fonction numpy.digitize() est la fonction numpy.bincount() , qui compte les fréquences de chaque bac.

Le code suivant montre comment placer les valeurs d’un tableau dans trois groupes, puis compter la fréquence de chaque groupe :

import numpy as np

#create data
data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34]

#place values into bins
bin_data = np.digitize(data, bins=[10, 20])

#view binned data
bin_data

array([0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2])

#count frequency of each bin
np.bincount(bin_data)

array([4, 2, 5])

La sortie nous dit que :

  • Le bac « 0 » contient 4 valeurs de données.
  • Le bac « 1 » contient 2 valeurs de données.
  • Le bac « 2 » contient 5 valeurs de données.

Trouvez plus de didacticiels Python ici .

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *