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 .

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert