Funzione numpy.random.seed() in NumPy

Muhammad Maisam Abbas 4 luglio 2021
Funzione numpy.random.seed() in NumPy

Questo tutorial spiegherà la funzione numpy.random.seed() in NumPy.

Funzione numpy.random.seed()

La funzione numpy.random.seed() è usata per impostare il seme per l’algoritmo del generatore di numeri pseudo-casuali in Python. L’algoritmo del generatore di numeri pseudo-casuali esegue alcune operazioni predefinite sul seme e produce un numero pseudo-casuale nell’output. Il seme funge da punto di partenza per l’algoritmo. Un numero pseudo-casuale è un numero che appare casuale, ma in realtà non lo è. In effetti, i computer non sono in grado di generare un numero veramente casuale perché i computer sono deterministici e seguono coerentemente un determinato insieme di istruzioni. L’idea alla base di questo è che otterremo sempre lo stesso insieme di numeri casuali per lo stesso seme su qualsiasi macchina.

import numpy as np

np.random.seed(1)
array = np.random.rand(5)
np.random.seed(1)
array2 = np.random.rand(5)
print(array)
print(array2)

Produzione:

[4.17022005e-01 7.20324493e-01 1.14374817e-04 3.02332573e-01
 1.46755891e-01]
[4.17022005e-01 7.20324493e-01 1.14374817e-04 3.02332573e-01
 1.46755891e-01]

Nel codice sopra, abbiamo impostato il seme casuale NumPy su 0 e generato una sequenza di cinque numeri pseudo-casuali basati su quel seme. Abbiamo quindi reimpostato il seme a 0 e generato nuovamente una sequenza di cinque numeri pseudo-casuali basati su quel seme. Nota che entrambe le volte otteniamo la stessa sequenza di valori. Entrambe le volte, i numeri casuali vengono generati applicando le stesse operazioni sugli stessi semi. Questo tipo di generazione di numeri casuali predeterminati è utile quando vogliamo generare la stessa sequenza di numeri casuali su macchine diverse.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn