So gruppieren sie variablen in python mit numpy.digitize()
Oftmals könnten Sie daran interessiert sein, die Werte einer Variablen in Python in „Bins“ zu packen.
Glücklicherweise ist dies mit der Funktion numpy.digitize() einfach zu bewerkstelligen, die die folgende Syntax verwendet:
numpy.digitize(x, bins, right=False)
Gold:
- x: Array zur Gruppierung.
- Bins: Array von Bins.
- rechts: Gibt an, ob die Intervalle den rechten oder linken Rand des Behälters umfassen. Standardmäßig umfasst das Intervall nicht die rechte Kante.
Dieses Tutorial zeigt einige Beispiele für die praktische Verwendung dieser Funktion.
Beispiel 1: Platzieren Sie alle Werte in zwei Bins
Der folgende Code zeigt, wie die Werte eines Arrays in zwei Bins platziert werden:
- 0 , wenn x < 20
- 1 wenn x ≥ 20
import numpy as np #create data data = [2, 4, 4, 7, 12, 14, 19, 20, 24, 31, 34] #place values into bins n.p. digitize (data, bins=[20]) array([0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1])
Beispiel 2: Platzieren Sie alle Werte in drei Bins
Der folgende Code zeigt, wie die Werte eines Arrays in drei Bins platziert werden:
- 0 , wenn x < 10
- 1 , wenn 10 ≤ x < 20
- 2 wenn x ≥ 20
import numpy as np #create data data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34] #place values into bins n.p. digitize (data, bins=[10, 20]) array([0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2])
Beachten Sie, dass, wenn wir right= True angeben, die Werte in den folgenden Bins platziert würden:
- 0 , wenn x ≤ 10
- 1 wenn 10 < x ≤ 20
- 2 wenn x > 20
Jedes Intervall würde den rechten Rand des Behälters umfassen. So sieht es aus:
import numpy as np #createdata data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34] #place values into bins n.p. digitize (data, bins=[10, 20], right= True ) array([0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2])
Beispiel 3: Platzieren Sie alle Werte in vier Bins
Der folgende Code zeigt, wie die Werte eines Arrays in drei Bins platziert werden:
- 0 , wenn x < 10
- 1 , wenn 10 ≤ x < 20
- 2 wenn 20 ≤ x < 30
- 3 wenn x ≥ 30
import numpy as np #createdata data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34] #place values into bins n.p. digitize (data, bins=[10, 20, 30]) array([0, 0, 0, 0, 1, 1, 2, 2, 2, 3, 3])
Beispiel 4: Zählen Sie die Häufigkeit jedes Behälters
Eine weitere nützliche NumPy-Funktion, die die Funktion numpy.digitize() ergänzt, ist die Funktion numpy.bincount() , die die Häufigkeiten jedes Bins zählt.
Der folgende Code zeigt, wie man die Werte eines Arrays in drei Gruppen einteilt und dann die Häufigkeit jeder Gruppe zählt:
import numpy as np #createdata data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34] #place values into bins bin_data = np. digitize (data, bins=[10, 20]) #view binned data bin_data array([0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2]) #count frequency of each bin n.p. bincount (bin_data) array([4, 2, 5])
Die Ausgabe sagt uns Folgendes:
- Bin „0“ enthält 4 Datenwerte.
- Bin „1“ enthält 2 Datenwerte.
- Bin „2“ enthält 5 Datenwerte.
Weitere Python-Tutorials finden Sie hier .