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 .

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *