Wie zähle ich die Vorkommen eines Elements in einem eindimensionalen Array in Python

  1. Verwenden von Collections, um die Anzahl der Vorkommen in einem Array in Python zu ermitteln
  2. Verwendung der NumPy-Bibliothek, um die Anzahl der Vorkommnisse in einem Array in Python zu ermitteln

Bei der Arbeit mit einem Array ist das Zählen der Anzahl der Vorkommnisse eines Elements eines der Hauptprobleme, mit denen ein Entwickler konfrontiert werden kann. Stellen Sie sich vor, Sie haben ein Array mit der Anzahl der verkauften Artikel auf einer eCommerce-Site über 10 Tage und möchten wissen, wie viele Tage mehr als 100 Artikel verkauft wurden.

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

Der einfachste Weg zur Lösung dieses Problems besteht darin, die Anzahl der 100 Vorkommnisse in dem Array zu ermitteln.

Verwenden von Collections, um die Anzahl der Vorkommen in einem Array in Python zu ermitteln

Sammlungen verhalten sich wie Container zur Speicherung von Datensammlungen. Wir können das Modul Collections einfach importieren und die Counter-Funktion verwenden.

Überprüfen Sie den untenstehenden Code:

>>>import collections
>>>sales=[0, 100, 100, 80, 70, 80, 20, 10, 100, 100, 80, 70, 10, 30, 40]  
>>>print(collections.Counter(sales))
Counter({100: 4, 80: 3, 70: 2, 10: 2, 0: 1, 20: 1, 30: 1, 40: 1})

Die resultierende Ausgabe ist ein Dictionary. Es listet auf, wie oft jedes Element in dem Array aufgetreten ist.

Wenn wir jedoch die Anzahl der 100 Vorkommnisse im Array Verkauf ausdrucken wollen, können wir sie aus dem Dictionary abrufen.

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

Das Modul Collection arbeitet auch mit Dezimalzahlen und Zeichenketten.

>>>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})

Verwendung der NumPy-Bibliothek, um die Anzahl der Vorkommnisse in einem Array in Python zu ermitteln

Wir können jedoch auch NumPy verwenden, eine Bibliothek, die in Python definiert ist, um große Arrays zu handhaben, und die auch eine große Anzahl mathematischer Funktionen enthält.

Es gibt mehrere Möglichkeiten, wie Sie die in NumPy definierten Funktionen verwenden können, um die Anzahl der Elemente in einem Array zurückzugeben.

Verwendung der einzigartigen Funktion in Numpy

einzigartige Funktion zusammen mit Count, gibt ein Dictionary der Anzahl jedes Elements zurück. Sie arbeitet auch mit Dezimalzahlen und Zeichenketten.

>>>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)));  
{0: 1, 10: 2, 20: 1, 30: 1, 40: 1, 70: 2, 80: 3, 100: 4}

Verwendung der Funktion count_nonzero in Numpy

Die Verwendung der count_nonzero gibt die Anzahl des gesuchten Artikels zurück. Es bietet eine leicht lesbare Schnittstelle und weniger Codezeilen.

>>>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 funktioniert auch mit Dezimalzahlen und Zeichenketten.

>>>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

Verwendung der Funktion bincount in Numpy - nur für Arrays mit ganzen Zahlen

Wenn Sie jedoch ein Array haben, das nur ganze Zahlen enthält, können Sie die Funktion bincount von NumPy verwenden. Der beste Teil ist, dass sie die Ergebnisse als ein Array zurückgibt.

>>>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]

Für die Zahlen in dem Array zeigt das Ergebnis die Anzahl der Elemente in aufsteigender Reihenfolge an. Zum Beispiel kommt 0 im Array abit 5 Mal vor und 10 2 Mal, wie durch das erste und letzte Element des Arrays angegeben.

Verwandter Artikel - Python Array

  • Wie man ein 2D-Array in Python initiiert