Eine häufige Aufgabe bei der Datenanalyse besteht darin, die Häufigkeit des Auftretens jedes einzelnen Werts in einem bestimmten Datensatz zu bestimmen. NumPy bietet mehrere effiziente Möglichkeiten, dies für Arrays numerischer Daten zu erreichen.
Ein Ansatz besteht darin, die Funktion np.unique zu verwenden, wobei der Parameter return_counts auf True gesetzt ist (verfügbar in NumPy Version 1.9 und höher). Dieser Parameter gibt nicht nur die eindeutigen Werte zurück, sondern auch die entsprechenden Anzahlen.
<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) print(np.asarray((unique, counts)).T) ''' Output: [[ 1 5] [ 2 3] [ 5 1] [25 1]] '''</code>
Diese Methode übertrifft scipy.stats.itemfreq in puncto Effizienz, wie der folgende Zeitvergleich zeigt:
<code class="python">import numpy as np import scipy.stats x = np.random.random_integers(0,100,1e6) %timeit unique, counts = np.unique(x, return_counts=True) 10 loops, best of 3: 31.5 ms per loop %timeit scipy.stats.itemfreq(x) 10 loops, best of 3: 170 ms per loop</code>
Das obige ist der detaillierte Inhalt von**Wie kann ich die Häufigkeit eindeutiger Werte in einem NumPy-Array effizient zählen?**. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!