Wie kann ich die Häufigkeit eindeutiger Werte in einem NumPy-Array effizient zählen?

Patricia Arquette
Freigeben: 2024-10-28 07:03:30
Original
991 Leute haben es durchsucht

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

Erhalten von Häufigkeitszahlen für eindeutige Werte in einem NumPy-Array

Um die Häufigkeit jedes einzelnen Werts innerhalb eines NumPy-Arrays effizient zu bestimmen, sollten Sie die Verwendung in Betracht ziehen NumPys einzigartige Funktion in Verbindung mit 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>
Nach dem Login kopieren

Dieser Ansatz ergibt ein Tupel mit zwei Arrays: „unique“, das die im ursprünglichen Array vorhandenen eindeutigen Werte enthält, und „counts“, das die jeweiligen Häufigkeiten von angibt Vorkommen für jeden eindeutigen Wert.

Zum Beispiel gibt die Ausführung des obigen Codes mit dem angegebenen Eingabearray Folgendes zurück:

[(1, 5), (2, 3), (5, 1), (25, 1)]
Nach dem Login kopieren

was anzeigt, dass der Wert 1 fünfmal vorkommt, 2 dreimal vorkommt, 5 erscheint einmal und 25 erscheint einmal.

Die Verwendung von unique(return_counts=True) bietet einen erheblichen Leistungsvorteil gegenüber der scipy.stats.itemfreq-Funktion von SciPy für große Datensätze, wie im folgenden Codeausschnitt gezeigt:

<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>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie 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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!