Números aleatórios no NumPy
O que é um número aleatório?
Número aleatório NÃO significa um número diferente a cada vez. Aleatório significa algo que não pode ser previsto logicamente.
Pseudo Aleatório e Verdadeiro Aleatório.
Computadores trabalham em programas, e programas são um conjunto definitivo de instruções. Então significa que deve haver algum algoritmo para gerar um número aleatório também.
Se houver um programa para gerar um número aleatório, ele pode ser previsto, portanto, não é verdadeiramente aleatório.
Números aleatórios gerados através de um algoritmo de geração são chamados de pseudo-aleatórios .
Podemos fazer números verdadeiramente aleatórios?
sim. Para gerar um número verdadeiramente aleatório em nossos computadores, precisamos obter os dados aleatórios de alguma fonte externa. Essa fonte externa geralmente são nossas teclas, movimentos do mouse, dados na rede etc.
Não precisamos de números verdadeiramente aleatórios, a menos que esteja relacionado à segurança (por exemplo, chaves de criptografia) ou a base de aplicação seja a aleatoriedade (por exemplo, roletas digitais).
Neste tutorial, usaremos números pseudo-aleatórios.
Gerar número aleatório
NumPy oferece o random
módulo para trabalhar com números aleatórios.
Exemplo
Gere um número inteiro aleatório de 0 a 100:
from numpy import random
x = random.randint(100)
print(x)
Gerar flutuação aleatória
O rand()
método do módulo random retorna um float aleatório entre 0 e 1.
Exemplo
Gere um float aleatório de 0 a 1:
from numpy import random
x = random.rand()
print(x)
Gerar matriz aleatória
No NumPy trabalhamos com arrays, e você pode usar os dois métodos dos exemplos acima para fazer arrays aleatórios.
Inteiros
O randint()
método recebe um size
parâmetro onde você pode especificar a forma de uma matriz.
Exemplo
Gere uma matriz 1-D contendo 5 inteiros aleatórios de 0 a 100:
from numpy import random
x=random.randint(100, size=(5))
print(x)
Exemplo
Gere uma matriz 2-D com 3 linhas, cada linha contendo 5 inteiros aleatórios de 0 a 100:
from numpy import random
x = random.randint(100, size=(3, 5))
print(x)
Flutuadores
O rand()
método também permite especificar a forma da matriz.
Exemplo
Gere um array 1-D contendo 5 floats aleatórios:
from numpy import random
x = random.rand(5)
print(x)
Exemplo
Gere uma matriz 2-D com 3 linhas, cada linha contendo 5 números aleatórios:
from numpy import random
x = random.rand(3, 5)
print(x)
Gerar número aleatório da matriz
O choice()
método permite gerar um valor aleatório com base em uma matriz de valores.
O choice()
método recebe um array como parâmetro e retorna aleatoriamente um dos valores.
Exemplo
Retorna um dos valores em uma matriz:
from numpy import random
x = random.choice([3, 5, 7, 9])
print(x)
O choice()
método também permite retornar uma matriz de valores.
Adicione um size
parâmetro para especificar a forma da matriz.
Exemplo
Gere uma matriz 2-D que consiste nos valores no parâmetro de matriz (3, 5, 7 e 9):
from numpy import random
x = random.choice([3, 5, 7, 9], size=(3, 5))
print(x)