Oft sind Sie daran interessiert, die Werte einer Variablen in Python in „Bins“ zu platzieren. Glücklicherweise ist dies mit der Funktion numpy.digitize(), die die folgende Syntax verwendet, einfach zu bewerkstelligen:

numpy.digitize(x, bins, right=False)

wo:

  • x: Array, das gruppiert werden soll.
  • bins: Array von Bins.
  • right: Gibt an, ob die Intervalle die rechte oder die linke Bin-Kante enthalten. Standardmäßig enthält 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

# Daten erstellen
data = [2, 4, 4, 7, 12, 14, 19, 20, 24, 31, 34]

# Werte in Bins platzieren
np.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

# Daten erstellen
data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34]

# Werte in Bins platzieren
np.digitize(data, bins=[10, 20])

array([0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2])

Beachten Sie, dass die Werte in die folgenden Fächer gestellt werden, wenn wir right = True angeben:

  • 0 wenn x ≤ 10
  • 1 wenn 10 <x ≤ 20
  • 2 wenn x> 20

Jedes Intervall würde die rechte Bin-Kante enthalten. So sieht das aus:

import numpy as np

# Daten erstellen
data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34]

# Werte in Bins platzieren
np.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

# Daten erstellen
data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34]

# Werte in Bins platzieren
np.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 Frequenzen jedes Bin zählt.

Der folgende Code zeigt, wie Sie die Werte eines Arrays in drei Bins platzieren und dann die Häufigkeit jedes Bins zählen:

import numpy as np

# Daten erstellen
data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34]

# Werte in Bins platzieren
bin_data = np.digitize(data, bins=[10, 20])

# gruppierte Daten anzeigen
bin_data

array([0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2])

#Zählhäufigkeit jedes Behälters
np.bincount(bin_data)

array([4, 2, 5])

Die Ausgabe sagt uns, dass:

  • Bin "0" enthält 4 Datenwerte.
  • Bin "1" enthält 2 Datenwerte.
  • Bin “2” enthält 5 Datenwerte.

Weitere Python-Tutorials finden Sie hier.

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: