Come raggruppare le variabili in python usando numpy.digitize()
Spesso potresti essere interessato a mettere i valori di una variabile in “bin” in Python.
Fortunatamente, questo è facile da fare utilizzando la funzione numpy.digitize() , che utilizza la seguente sintassi:
numpy.digitize(x, bin, destra=False)
Oro:
- x: array da raggruppare.
- bin: array di bin.
- destra: indica se gli intervalli includono il bordo destro o sinistro del contenitore. Per impostazione predefinita, l’intervallo non include il bordo destro.
Questo tutorial mostra diversi esempi di utilizzo pratico di questa funzione.
Esempio 1: posiziona tutti i valori in due contenitori
Il codice seguente mostra come posizionare i valori di un array in due contenitori:
- 0 se x < 20
- 1 se 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])
Esempio 2: posizionare tutti i valori in tre contenitori
Il codice seguente mostra come posizionare i valori di un array in tre contenitori:
- 0 se x < 10
- 1 se 10 ≤ x < 20
- 2 se 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])
Tieni presente che se specifichiamo right= True , i valori verranno inseriti nei seguenti contenitori:
- 0 se x ≤ 10
- 1 se 10 < x ≤ 20
- 2 se x > 20
Ogni intervallo includerebbe il bordo destro del contenitore. Ecco come appare:
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])
Esempio 3: posizionare tutti i valori in quattro contenitori
Il codice seguente mostra come posizionare i valori di un array in tre contenitori:
- 0 se x < 10
- 1 se 10 ≤ x < 20
- 2 se 20 ≤ x < 30
- 3 se 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])
Esempio 4: contare la frequenza di ciascun contenitore
Un’altra utile funzione NumPy che integra la funzione numpy.digitize() è la funzione numpy.bincount() , che conta le frequenze di ciascun contenitore.
Il codice seguente mostra come posizionare i valori di un array in tre gruppi, quindi contare la frequenza di ciascun gruppo:
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])
L’output ci dice che:
- Il contenitore “0” contiene 4 valori di dati.
- Il contenitore “1” contiene 2 valori di dati.
- Il contenitore “2” contiene 5 valori di dati.
Trova altri tutorial Python qui .