Numeri casuali in NumPy


Che cos'è un numero casuale?

Numero casuale NON significa un numero diverso ogni volta. Casuale significa qualcosa che non può essere previsto logicamente.

Pseudo casuale e vero casuale.

I computer lavorano su programmi e i programmi sono un insieme definitivo di istruzioni. Quindi significa che ci deve essere anche un algoritmo per generare un numero casuale.

Se esiste un programma per generare un numero casuale può essere previsto, quindi non è veramente casuale.

I numeri casuali generati attraverso un algoritmo di generazione sono chiamati pseudo casuali .

Possiamo fare numeri veramente casuali?

Sì. Per generare un numero veramente casuale sui nostri computer, dobbiamo ottenere i dati casuali da una fonte esterna. Questa fonte esterna è generalmente costituita dalle sequenze di tasti, dai movimenti del mouse, dai dati sulla rete, ecc.

Non abbiamo bisogno di numeri veramente casuali, a meno che non siano legati alla sicurezza (es. chiavi di crittografia) o la base dell'applicazione sia la casualità (es. Ruote della roulette digitale).

In questo tutorial useremo numeri pseudo casuali.


Genera numero casuale

NumPy offre il randommodulo per lavorare con numeri casuali.

Esempio

Genera un numero intero casuale da 0 a 100:

from numpy import random

x = random.randint(100)

print(x)

Genera float casuale

Il rand()metodo del modulo random restituisce un float casuale compreso tra 0 e 1.

Esempio

Genera un float casuale da 0 a 1:

from numpy import random

x = random.rand()

print(x)


Genera array casuale

In NumPy lavoriamo con gli array e puoi usare i due metodi degli esempi precedenti per creare array casuali.

Interi

Il randint()metodo accetta un size parametro in cui è possibile specificare la forma di un array.

Esempio

Genera un array 1-D contenente 5 numeri interi casuali da 0 a 100:

from numpy import random

x=random.randint(100, size=(5))

print(x)

Esempio

Genera un array 2D con 3 righe, ciascuna riga contenente 5 numeri interi casuali da 0 a 100:

from numpy import random

x = random.randint(100, size=(3, 5))

print(x)

Galleggia

Il rand()metodo consente inoltre di specificare la forma dell'array.

Esempio

Genera un array 1-D contenente 5 float casuali:

from numpy import random

x = random.rand(5)

print(x)

Esempio

Genera un array 2D con 3 righe, ciascuna riga contenente 5 numeri casuali:

from numpy import random

x = random.rand(3, 5)

print(x)

Genera numero casuale dall'array

Il choice()metodo consente di generare un valore casuale basato su una matrice di valori.

Il choice()metodo accetta una matrice come parametro e restituisce casualmente uno dei valori.

Esempio

Restituisce uno dei valori in una matrice:

from numpy import random

x = random.choice([3, 5, 7, 9])

print(x)

Il choice()metodo consente inoltre di restituire una matrice di valori.

Aggiungere un sizeparametro per specificare la forma della matrice.

Esempio

Genera una matrice 2D composta dai valori nel parametro matrice (3, 5, 7 e 9):

from numpy import random

x = random.choice([3, 5, 7, 9], size=(3, 5))

print(x)