Jak grupować zmienne w pythonie za pomocą numpy.digitize()


Często możesz być zainteresowany umieszczeniem wartości zmiennej w „pojemnikach” w Pythonie.

Na szczęście można to łatwo zrobić za pomocą funkcji numpy.digitize() , która wykorzystuje następującą składnię:

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

Złoto:

  • x: tablica do grupy.
  • bins: tablica pojemników.
  • po prawej: wskazuje, czy interwały obejmują prawą, czy lewą krawędź kosza. Domyślnie interwał nie obejmuje prawej krawędzi.

W tym samouczku przedstawiono kilka przykładów praktycznego wykorzystania tej funkcji.

Przykład 1: Umieść wszystkie wartości w dwóch pojemnikach

Poniższy kod pokazuje, jak umieścić wartości tablicy w dwóch pojemnikach:

  • 0 jeśli x < 20
  • 1 jeśli 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])

Przykład 2: Umieść wszystkie wartości w trzech pojemnikach

Poniższy kod pokazuje, jak umieścić wartości tablicy w trzech pojemnikach:

  • 0 , jeśli x < 10
  • 1 jeśli 10 ≤ x < 20
  • 2 jeśli 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])

Zauważ, że jeśli określimy prawo= True , wówczas wartości zostaną umieszczone w następujących pojemnikach:

  • 0 jeśli x ≤ 10
  • 1 jeśli 10 < x ≤ 20
  • 2 jeśli x > 20

Każdy przedział obejmowałby prawą krawędź kosza. Oto jak to wygląda:

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

Przykład 3: Umieść wszystkie wartości w czterech pojemnikach

Poniższy kod pokazuje, jak umieścić wartości tablicy w trzech pojemnikach:

  • 0 , jeśli x < 10
  • 1 jeśli 10 ≤ x < 20
  • 2 jeśli 20 ≤ x < 30
  • 3 jeśli 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])

Przykład 4: Policz częstotliwość każdego pojemnika

Inną przydatną funkcją NumPy, która uzupełnia funkcję numpy.digitize() jest funkcja numpy.bincount() , która zlicza częstotliwości każdego pojemnika.

Poniższy kod pokazuje, jak umieścić wartości tablicy w trzech grupach, a następnie policzyć częstotliwość każdej grupy:

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

Dane wyjściowe mówią nam, że:

  • Pojemnik „0” zawiera 4 wartości danych.
  • Pojemnik „1” zawiera 2 wartości danych.
  • Pojemnik „2” zawiera 5 wartości danych.

Więcej samouczków dotyczących języka Python znajdziesz tutaj .

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *