Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the elementor domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/gedemyit/public_html/wp-includes/functions.php on line 6170

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the elementor-pro domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/gedemyit/public_html/wp-includes/functions.php on line 6170
Random in Numpy – Gedemy

Random in Numpy

Il modulo random di NumPy è uno degli strumenti più utili quando si lavora con Python e con i dati numerici. Viene usato per generare numeri casuali, creare esempi, simulare fenomeni, mescolare valori e testare codice in modo rapido. Per chi inizia, può sembrare un argomento astratto, ma in realtà è molto pratico: basta conoscere poche funzioni chiave per ottenere risultati concreti in poco tempo.

In questa guida vedremo in modo semplice come funziona NumPy random, come creare numeri casuali e come selezionare elementi da un array in maniera casuale. L’obiettivo è offrire una panoramica chiara, utile e ben strutturata, adatta anche a chi è alle prime esperienze con la libreria.

Cos’è il modulo di NumPy per generare numeri casuali

Il modulo NumPy Random è la parte della libreria NumPy dedicata alla generazione di valori casuali. In termini semplici, permette di produrre numeri che sembrano imprevedibili, ma che in realtà vengono creati attraverso algoritmi precisi. Questo approccio è fondamentale in informatica, nelle simulazioni, nel machine learning, nella statistica e in molti contesti di test.

Una delle ragioni per cui il modulo random di NumPy è così apprezzato è la sua velocità. Rispetto ad altre soluzioni più generiche, NumPy lavora molto bene con gli array e consente di generare intere sequenze di numeri in una sola istruzione. Questo lo rende particolarmente comodo quando si vogliono creare dataset fittizi o eseguire prove su grandi quantità di dati.

Per usare il modulo, di solito si importa NumPy con un alias breve. Ad esempio:

import numpy as np

Dopo l’importazione, si possono richiamare le funzioni del modulo random tramite np.random. Una delle più conosciute è quella che genera un numero intero casuale. Ad esempio:

import numpy as np

numero = np.random.randint(1, 10)
print(numero)

In questo caso, NumPy estrae un numero intero casuale compreso tra 1 e 9. Il limite superiore, infatti, non viene incluso. È un dettaglio piccolo, ma importante da ricordare per evitare errori.

Un altro concetto molto utile è il seed, cioè il seme del generatore casuale. Impostando un seed fisso, si possono ottenere sempre gli stessi risultati a ogni esecuzione. Questo è prezioso quando si vogliono fare test ripetibili o spiegare un esempio in modo coerente.

import numpy as np

np.random.seed(42)
print(np.random.randint(1, 10))

Grazie al seed, il comportamento “casuale” diventa riproducibile. È una caratteristica molto usata nella pratica, soprattutto quando si lavora in ambito didattico o nello sviluppo di algoritmi.

Come generare numeri casuali in NumPy con esempi pratici

Quando si parla di generare numeri casuali in NumPy, è utile sapere che esistono diverse funzioni, ciascuna pensata per uno scopo specifico. Alcune producono numeri interi, altre numeri decimali, altre ancora riempiono array multidimensionali con valori casuali.

Per creare un singolo intero casuale si usa spesso randint(). Per esempio:

import numpy as np

valore = np.random.randint(0, 100)
print(valore)

Se invece vuoi ottenere più valori in una sola volta, puoi indicare la dimensione desiderata con il parametro size:

import numpy as np

numeri = np.random.randint(0, 100, size=5)
print(numeri)

In questo modo viene creato un array con cinque numeri interi casuali. È una soluzione rapida, elegante e molto usata in esercizi, simulazioni e fasi di prototipazione.

Se il tuo obiettivo è generare numeri decimali casuali tra 0 e 1, una funzione classica è rand():

import numpy as np

decimale = np.random.rand()
print(decimale)

Anche qui è possibile produrre più valori insieme:

import numpy as np

valori = np.random.rand(3)
print(valori)

Se hai bisogno di una matrice casuale, puoi specificare più dimensioni:

import numpy as np

matrice = np.random.rand(2, 3)
print(matrice)

Questo approccio è molto utile quando si lavora con tabelle numeriche, immagini, modelli matematici o operazioni di algebra lineare.

Un’altra funzione importante è randn(), che genera numeri seguendo una distribuzione normale standard. Per chi è alle prime armi, si può pensare a questa funzione come a un modo per creare valori distribuiti attorno allo zero, con una maggiore probabilità di ottenere numeri vicini alla media.

import numpy as np

campione = np.random.randn(5)
print(campione)

Non è necessario padroneggiare subito la statistica per iniziare a usare questa funzione. L’importante è sapere che esistono generatori casuali diversi, pensati per esigenze diverse.

Nella pratica quotidiana, le funzioni più frequenti per un principiante sono:

  • randint() per interi casuali
  • rand() per decimali casuali tra 0 e 1
  • randn() per valori con distribuzione normale

Con queste tre basi si copre già una parte molto ampia degli utilizzi più comuni di NumPy random in Python.

Come scegliere elementi casuali da un array con NumPy

Oltre a generare numeri, il modulo random è molto utile anche per estrarre casualmente da un array. Questa operazione è fondamentale quando vuoi selezionare elementi a caso da una lista di valori, simulare un’estrazione oppure mescolare dati in modo non ordinato.

La funzione più conosciuta per questo scopo è choice(). Ecco un esempio semplice:

import numpy as np

array = np.array(
    [
        10,
        20,
        30,
        40,
        50
    ]
)

elemento = np.random.choice(array)
print(elemento)

In questo caso, NumPy sceglie un solo elemento casuale dall’array. È un metodo diretto e leggibile, ideale anche in esempi introduttivi.

Se vuoi estrarre più elementi, puoi specificare la quantità:

import numpy as np

array = np.array(
    [
        10,
        20,
        30,
        40,
        50
    ]
)

estratti = np.random.choice(array, size=3)
print(estratti)

Per impostazione predefinita, la funzione può ripetere gli elementi estratti. Se invece vuoi evitare duplicati, puoi usare il parametro replace=False:

import numpy as np

array = np.array(
    [
        10,
        20,
        30,
        40,
        50
    ]
)

estratti = np.random.choice(
    array,
    size=3,
    replace=False
)

print(
    estratti
)

Questo è particolarmente utile quando vuoi simulare un’estrazione reale, come nel caso di carte, numeri della lotteria o selezioni senza ripetizione.

Un’altra operazione frequente è il mescolamento casuale di un array. In questo caso si può usare shuffle():

import numpy as np

array = np.array(
    [
        1,
        2,
        3,
        4,
        5
    ]
)

np.random.shuffle(
    array
)

print(
    array
)

La funzione modifica direttamente l’array esistente, cambiandone l’ordine. È quindi molto comoda, ma va usata sapendo che il contenuto originale viene alterato.

Se desideri ottenere una versione mescolata senza modificare quella iniziale, puoi prima creare una copia:

import numpy as np

array = np.array([10, 20, 30, 40, 50])

estratti = np.random.choice(array, size = 3, replace = False)
print(estratti)

Questa piccola accortezza è spesso decisiva nei progetti reali, perché evita modifiche indesiderate ai dati di partenza.

Conclusioni su NumPy Random e sulla generazione casuale di dati

Il modulo random in NumPy rappresenta una risorsa preziosa per chiunque voglia lavorare con Python in modo più pratico e versatile. Permette di generare numeri casuali, costruire array di prova, selezionare elementi in modo casuale e mescolare dati con grande semplicità.

Per un principiante, il consiglio migliore è partire dalle funzioni più immediate, come randint(), rand() e choice(), per poi esplorare gradualmente gli strumenti più avanzati. Con un po’ di pratica, questo modulo diventa naturale da usare e apre la strada a esercizi, simulazioni e analisi molto interessanti.

Se stai studiando la documentazione NumPy o vuoi migliorare la tua padronanza di Python, conoscere bene il comportamento del modulo random è un passaggio importante. È uno di quegli strumenti che, una volta compresi, tornano utili in moltissimi contesti diversi.

Corsi correlati

Design Pattern per videogiochi

I Design Pattern sono soluzioni a problemi comuni che si incontrano nello sviluppo del software. Nel contesto dei videogiochi, questi pattern possono aiutare a gestire la complessità crescente dei giochi moderni. Sei appassionato di videogiochi? Hai mai pensato a come vengono progettati e sviluppati? Sei curioso di scoprire i segreti dietro la creazione dei tuoi giochi preferiti? Allora sei nel posto giusto! Questo corso è stato progettato per fornirti una solida comprensione dei Design Pattern, strumenti fondamentali per ogni sviluppatore di giochi. Attraverso esempi pratici e realistici, esploreremo insieme come questi pattern possono aiutarti a creare giochi più efficienti, flessibili e mantenibili.

Corso Fondamenti di Python

Python, uno dei linguaggi di programmazione più popolari al mondo, è ampiamente utilizzato da colossi dell’informatica e della tecnologia come Google, la Nasa e Mozilla.
Questo corso sui fondamenti di Python esplorerà le ragioni del suo successo duraturo. Impareremo la potente ed espressiva sintassi di Python, che consente di ottenere risultati impressionanti con poche righe di codice.

Blender Masterclass 2

I paesaggi, in generale, possono risultare intimidatori data la loro complessità, costituita da numerosi elementi che sembrano formare qualcosa di virtualmente infinito. Durante le lezioni di questo corso, ci concentreremo su una scomposizione delle diverse fasi coinvolte nella creazione di una scena, affrontandole una alla volta attraverso passi graduati.

Blender Masterclass 1

In questo corso di Blender 3D, Masha, in collaborazione con Gedemy, vi mostrerà il processo di modellazione, UV mapping, shading, e texture painting di un asset. Una volta apprese le basi, vedremo anche come effettuare il baking delle textures e la preparazione con successivo export della mesh in modo che possa essere utilizzabile all’interno di un qualsiasi altro software.

Crea il tuo account gratuito Gedemy

Gedemy è la prima piattaforma di formazione italiana che ti permette di sviluppare competenze in ambiti come Game Design, Programming, Arte, 3D, Tech, AI e molto altro.


Notice: ob_end_flush(): Failed to send buffer of zlib output compression (0) in /home/gedemyit/public_html/wp-includes/functions.php on line 5493