Comment compter les occurrences d'un objet dans un tableau unidimensionnel en Python

Debolina Dasgupta 30 janvier 2023
  1. Utilisation de collections pour trouver le nombre d’occurrences dans un tableau en Python
  2. Utilisation de la bibliothèque NumPy pour trouver le nombre d’occurrences dans un tableau en Python
Comment compter les occurrences d'un objet dans un tableau unidimensionnel en Python

L’un des principaux problèmes auxquels un développeur peut être confronté lorsqu’il travaille avec un tableau est le comptage du nombre d’occurrences d’un élément. Imaginez que vous ayez un tableau du nombre d’articles vendus sur un site de commerce électronique sur 10 jours, vous voudriez connaître le nombre de jours où plus de 100 articles sont vendus.

sales = [0, 100, 100, 80, 70, 80, 20, 10, 100, 100, 80, 70, 10, 30, 40]

La solution la plus simple consiste à compter le nombre de fois que 100 occurrences se produisent dans le tableau.

Utilisation de collections pour trouver le nombre d’occurrences dans un tableau en Python

Les collections agissent comme des conteneurs pour stocker des collections de données. Nous pouvons facilement importer le module collections et utiliser la fonction “Compteur”.

Vérifiez le code ci-dessous:

import collections

sales=[0, 100, 100, 80, 70, 80, 20, 10, 100, 100, 80, 70, 10, 30, 40]  

print(collections.Counter(sales))

La sortie qui en résulte est un dictionnaire. Il indique combien de fois chaque élément du tableau est apparu.

Cependant, si nous voulons imprimer le nombre de fois que 100 se produit dans le tableau “ventes”, nous pouvons le récupérer dans le dictionnaire.

>>>print(collections.Counter(sales)[100])
4

Le module “Collection” fonctionne également avec des nombres décimaux et des chaînes de caractères.

floatarr=[0.7, 10.0, 10.1, .8, .7, .8, .2, .1, 10.0, 
10.0, .8, .8, .7, .7, .8]
print(collections.Counter(floatarr))
#Counter({0.8: 5, 0.7: 4, 10.0: 3, 10.1: 1, 0.2: 1, 0.1: 1})

stringarr=["george","mark","george","steve","george"]
print(collections.Counter(stringarr))
#Counter({'george': 3, 'mark': 1, 'steve': 1})

Utilisation de la bibliothèque NumPy pour trouver le nombre d’occurrences dans un tableau en Python

Cependant, nous pouvons également utiliser NumPy, qui est une bibliothèque définie en Python pour traiter de grands tableaux et qui contient également un grand nombre de fonctions mathématiques.

Il existe plusieurs façons d’utiliser les fonctions définies dans NumPy pour retourner le nombre d’articles dans un tableau.

Utilisation d’une fonction unique dans NumPy

La fonction unique avec la fonction “Comptage” retourne un dictionnaire du comptage de chaque article. Elle fonctionne également avec les nombres décimaux et les chaînes de caractères.

import collections, numpy

aUnique = numpy.array([0, 100, 100, 80, 70, 80, 20, 10, 100, 
100, 80, 70, 10, 30, 40])

unique, counts = numpy.unique(aUnique, return_counts=True)

print(dict(zip(unique, counts)))

Utilisation de la fonction count_nonzero dans NumPy

L’utilisation du “compte_non-zéro” retourne le nombre d’articles que nous recherchons. Il offre une interface facile à lire et moins de lignes de code.

>>>aCountZero = numpy.array([0, 100.1, 100.1, 80, 70, 80, 20, 10, 
100, 100, 80, 70, 10, 30, 40,"abc"])
>>>print(numpy.count_nonzero(aCountZero == "abc"))
1

count_nonzero fonctionne aussi avec des nombres décimaux et des chaînes de caractères.

>>>aCountZero = numpy.array([0, 100.1, 100.1, 80, 70, 80, 20, 10,

100, 100, 80, 70, 10, 30, 40])

>>>print(numpy.count_nonzero(aCountZero == 100.1))
1

Utilisation de la fonction bincount dans NumPy - seulement pour les tableaux avec des entiers

Cependant, si vous avez un tableau qui ne contient que des entiers, vous pouvez utiliser la fonction bincount de NumPy. La meilleure partie est qu’elle retourne les résultats sous forme de tableau.

>>>abit = numpy.array([0, 6, 0, 10, 0, 1, 1, 0, 10, 9, 0, 1])

>>>print(numpy.bincount(abit))

[5 3 0 0 0 0 1 0 0 1 2]

Pour les nombres dans le tableau, le résultat affiche le nombre d’éléments en ordre croissant. Par exemple, 0 dans le tableau abit se produit 5 fois et 10 se produit 2 fois comme indiqué par le premier et le dernier élément du tableau.

Article connexe - Python Array