Comment puis-je compter efficacement la fréquence des valeurs uniques dans un tableau NumPy ?

Patricia Arquette
Libérer: 2024-10-28 07:03:30
original
991 Les gens l'ont consulté

How can I efficiently count the frequency of unique values in a NumPy array?

Obtention des décomptes de fréquence pour les valeurs uniques dans un tableau NumPy

Pour déterminer efficacement la fréquence de chaque valeur unique dans un tableau NumPy, envisagez d'utiliser La fonction unique de NumPy en conjonction avec return_counts=True.

<code class="python">import numpy as np

x = np.array([1,1,1,2,2,2,5,25,1,1])
unique, counts = np.unique(x, return_counts=True)</code>
Copier après la connexion

Cette approche produit un tuple contenant deux tableaux : unique, qui contient les valeurs uniques présentes dans le tableau d'origine, et counts, qui indique les fréquences respectives de occurrence pour chaque valeur unique.

Par exemple, l'exécution du code ci-dessus avec le tableau d'entrée donné renvoie :

[(1, 5), (2, 3), (5, 1), (25, 1)]
Copier après la connexion

indiquant que la valeur 1 apparaît 5 fois, 2 apparaît 3 fois, 5 apparaît une fois et 25 apparaît une fois.

L'utilisation de unique(return_counts=True) offre un avantage substantiel en termes de performances par rapport à la fonction scipy.stats.itemfreq de SciPy pour les grands ensembles de données, comme le démontre l'extrait de code ci-dessous :

<code class="python">In [4]: x = np.random.random_integers(0,100,1e6)

In [5]: %timeit unique, counts = np.unique(x, return_counts=True)
10 loops, best of 3: 31.5 ms per loop

In [6]: %timeit scipy.stats.itemfreq(x)
10 loops, best of 3: 170 ms per loop</code>
Copier après la connexion

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!