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 .