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 .

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *