numpy.random — Generazione di numeri casuali

Il sottomodulo numpy.random fornisce una classe Generator che estrae campioni dalle distribuzioni di probabilità più comuni. L’algoritmo sottostante è un generatore congruenziale permutato (PCG); consulta https://www.pcg-random.org/ per i dettagli.

Un Generator è un oggetto con stato: ogni chiamata a uno dei suoi metodi di campionamento fa avanzare lo stato interno, in modo che chiamate consecutive restituiscano campioni indipendenti. Gli array di output sono sempre di dtype numpy.float.

Classi

class numpy.random.Generator(seed: int | tuple[int, ...] | None = None)

Costruisce un nuovo generatore di numeri pseudo-casuali.

Parametri:

seed – il seme usato per inizializzare lo stato del generatore. Se viene fornito un intero, viene usato direttamente. Se viene fornita una tupla di interi, viene restituita una tupla di oggetti Generator con semi indipendenti (uno per elemento) invece di una singola istanza. Se viene fornito None, viene usato un seme predefinito della piattaforma (quando ne è configurato uno in fase di compilazione); altrimenti viene sollevato un ValueError.

Solleva:
  • TypeError – se seed non è None, un intero o una tupla di interi.

  • ValueError – se seed è None e non è configurato alcun seme predefinito.

normal(loc: float = 0.0, scale: float = 1.0, size: int | tuple[int, ...] | None = None) float | ndarray

Estrae campioni da una distribuzione normale (gaussiana).

Parametri:
  • loc – la media (centro) della distribuzione.

  • scale – la deviazione standard (ampiezza) della distribuzione. Deve essere non negativa.

  • size – la forma dell’output. Se è un intero, viene restituito un array monodimensionale di tale lunghezza. Se è una tupla, viene restituito un array di tale forma. Se è None (il valore predefinito), viene restituito un singolo float Python.

Ritorna:

un float Python oppure un numpy.ndarray di float della forma richiesta.

Solleva:
  • ValueError – se la forma richiesta supera ULAB_MAX_DIMS.

  • TypeError – se size non è né None, né un intero, né una tupla.

I campioni sono generati usando la trasformata di Box-Muller.

random(size: int | tuple[int, ...] | None = None, *, out: ndarray | None = None) float | ndarray

Estrae campioni dalla distribuzione uniforme sull’intervallo semiaperto [0.0, 1.0).

Parametri:
  • size – la forma dell’output. Se è un intero, viene restituito un array monodimensionale di tale lunghezza. Se è una tupla, viene restituito un array di tale forma. Se è None (il valore predefinito) e anche out è None, viene restituito un singolo float Python.

  • out – un numpy.ndarray di float opzionale, pre-allocato e denso, in cui ricevere i campioni. Se vengono forniti sia size che out, le loro forme devono coincidere.

Ritorna:

un float Python, un nuovo numpy.ndarray, oppure out (riempito con i campioni) a seconda degli argomenti.

Solleva:
  • TypeError – se size ha un tipo non supportato, oppure out non è un ndarray, oppure out non è di dtype float.

  • ValueError – se la forma richiesta supera ULAB_MAX_DIMS, se size e out.shape non coincidono, oppure se out non è contiguo.

uniform(low: float = 0.0, high: float = 1.0, size: int | tuple[int, ...] | None = None) float | ndarray

Estrae campioni dalla distribuzione uniforme sull’intervallo semiaperto [low, high).

Parametri:
  • low – il limite inferiore (incluso) della distribuzione.

  • high – il limite superiore (escluso) della distribuzione.

  • size – la forma dell’output. Se è una tupla, viene restituito un array di tale forma. Se è None (il valore predefinito), viene restituito un singolo float Python estratto da [0.0, 1.0) (i limiti low/high vengono ignorati nel caso scalare).

Ritorna:

un float Python oppure un numpy.ndarray di float della forma richiesta.

Solleva:
  • ValueError – se la forma richiesta supera ULAB_MAX_DIMS.

  • TypeError – se size non è né None né una tupla.

Con argomenti predefiniti identici, uniform() produce la stessa sequenza di random().