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 random
modulo 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 size
parametro 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)