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 randommó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 sizeparâ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)