quinta-feira, 16 de abril de 2020

Distribuição e permutação de dados com NumPy

Distribuição e permutação de dados com NumPy


Imagine que você precisa criar uma lista com valores aleatórios, mas que precisa que certos números apareçam mais vezes que outros. É possível fazer esse tipo de lista com métodos da biblioteca numpy. Esse tipo de lista é muito utilizada com data Science e estatísticas.
O módulo random têm métodos que permitem a você criar listas com números que vão aparecer mais vezes na matriz do que outros, de forma aleatória. Criando uma distribuição dos elementos na matriz de forma aleatória, mais com a densidade maior ou menor de um certo número. De acordo com a sua probabilidade.
Por exemplo, se você quer que sessenta por cento dos números de uma lista seja o número dois. A probabilidade de sair o número dois deve ser de 0,6. E se você não quer que um número apareça na lista é só definir a sua probabilidade como 0.
O método que vamos utilizar para criar essa lista é o método choice. A única diferença dos exemplos anteriores é a adição do parâmetro p, de probabilidade. Esse parâmetro recebe uma lista com a probabilidade de cada numero ser “sorteado”. Quanto maior a probabilidade, maior a chance de ele ser sorteado.
Exemplo
from numpy import random

x = random.choice([2, 4, 6, 9], p=[0.2, 0.0, 0.3, 0.5], size=(100))

print(x)
Nesse exemplo, o numero dois tem vinte por cento de chance de ser sorteado a cada novo numero. Mais isso não quer dizer que vinte por centos dos números sorteados vão ser o número dois. Significa que a quantidade de números dois vai ser próxima a vinte por cento da quantidade total de números.

Permutação de uma array

Com a permutação de uma matriz é possível embaralhar os elementos dessa matriz. A biblioteca numpy tem dois métodos para fazer a permuta: o método shuffle e permutation. O método shuffler embaralha os elementos da matriz passada como argumento e o método permutation retorna uma nova matriz, deixando a original intacta.
Exemplo
from numpy import random
import numpy as np

array = np.array([1, 2, 3, 4, 5])
# a matriz array é alterada
random.shuffle(array)

print(array)
O método permutation não alterar a matriz. Ele retorna uma nova matriz.
Exemplo
from numpy import random
import numpy as np

array = np.array([1, 2, 3, 4, 5])

# a matriz array não é alterada
print(random.permutation(array))
print(array)

0 comentários:

Postar um comentário