Como agrupar variáveis em python usando numpy.digitize()
Muitas vezes você pode estar interessado em colocar os valores de uma variável em “caixas” em Python.
Felizmente, isso é fácil de fazer usando a função numpy.digitize() , que usa a seguinte sintaxe:
numpy.digitize(x, caixas, direita=Falso)
Ouro:
- x: array para agrupar.
- bins: matriz de bins.
- direita: indica se os intervalos incluem a borda direita ou esquerda da caixa. Por padrão, o intervalo não inclui a borda direita.
Este tutorial mostra vários exemplos de uso prático desta função.
Exemplo 1: Coloque todos os valores em duas caixas
O código a seguir mostra como colocar os valores de um array em dois compartimentos:
- 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])
Exemplo 2: Coloque todos os valores em três compartimentos
O código a seguir mostra como colocar os valores de um array em três compartimentos:
- 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])
Observe que se especificarmos right= True então os valores serão colocados nas seguintes caixas:
- 0 se x ≤ 10
- 1 se 10 < x ≤ 20
- 2 se x > 20
Cada intervalo incluiria a borda direita da caixa. Isto é o que parece:
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])
Exemplo 3: Coloque todos os valores em quatro caixas
O código a seguir mostra como colocar os valores de um array em três compartimentos:
- 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])
Exemplo 4: conte a frequência de cada compartimento
Outra função NumPy útil que complementa a função numpy.digitize() é a função numpy.bincount() , que conta as frequências de cada compartimento.
O código a seguir mostra como colocar os valores de um array em três grupos e depois contar a frequência de cada grupo:
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])
A saída nos diz que:
- O bin “0” contém 4 valores de dados.
- O compartimento “1” contém 2 valores de dados.
- O compartimento “2” contém 5 valores de dados.
Encontre mais tutoriais de Python aqui .