numpy.random — Génération de nombres aléatoires

Le sous-module numpy.random fournit une classe Generator qui tire des échantillons à partir de distributions de probabilité courantes. L’algorithme sous-jacent est un générateur congruentiel permuté (PCG) ; voir https://www.pcg-random.org/ pour plus de détails.

Un objet Generator est un objet à état : chaque appel à l’une de ses méthodes d’échantillonnage fait avancer l’état interne, de sorte que des appels consécutifs renvoient des échantillons indépendants. Les tableaux de sortie sont toujours de type numpy.float.

Classes

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

Construit un nouveau générateur de nombres pseudo-aléatoires.

Paramètres:

seed – la graine utilisée pour initialiser l’état du générateur. Si un entier est fourni, il est utilisé directement. Si un tuple d’entiers est fourni, un tuple d’objets Generator initialisés indépendamment (un par élément) est renvoyé à la place d’une instance unique. Si None est fourni, une graine par défaut propre à la plateforme est utilisée (lorsqu’elle est configurée à la compilation) ; sinon une ValueError est levée.

Lève:
  • TypeError – si seed n’est ni None, ni un entier, ni un tuple d’entiers.

  • ValueError – si seed vaut None et qu’aucune graine par défaut n’est configurée.

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

Tire des échantillons d’une distribution normale (gaussienne).

Paramètres:
  • loc – la moyenne (centre) de la distribution.

  • scale – l’écart-type (largeur) de la distribution. Doit être non négatif.

  • size – la forme de la sortie. Si c’est un entier, un tableau unidimensionnel de cette longueur est renvoyé. Si c’est un tuple, un tableau de cette forme est renvoyé. Si c’est None (la valeur par défaut), un unique float Python est renvoyé.

Renvoie:

soit un float Python, soit un numpy.ndarray de flottants de la forme demandée.

Lève:
  • ValueError – si la forme demandée dépasse ULAB_MAX_DIMS.

  • TypeError – si size n’est ni None, ni un entier, ni un tuple.

Les échantillons sont générés à l’aide de la transformation de Box-Muller.

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

Tire des échantillons de la distribution uniforme sur l’intervalle semi-ouvert [0.0, 1.0).

Paramètres:
  • size – la forme de la sortie. Si c’est un entier, un tableau unidimensionnel de cette longueur est renvoyé. Si c’est un tuple, un tableau de cette forme est renvoyé. Si c’est None (la valeur par défaut) et que out vaut également None, un unique float Python est renvoyé.

  • out – un numpy.ndarray de flottants dense et pré-alloué, facultatif, destiné à recevoir les échantillons. Si à la fois size et out sont fournis, leurs formes doivent concorder.

Renvoie:

un float Python, un nouveau numpy.ndarray, ou out (rempli d’échantillons) selon les arguments.

Lève:
  • TypeError – si size est d’un type non pris en charge, ou si out n’est pas un ndarray, ou si out n’est pas de type float.

  • ValueError – si la forme demandée dépasse ULAB_MAX_DIMS, si size et out.shape ne concordent pas, ou si out n’est pas contigu.

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

Tire des échantillons de la distribution uniforme sur l’intervalle semi-ouvert [low, high).

Paramètres:
  • low – la borne inférieure (incluse) de la distribution.

  • high – la borne supérieure (exclue) de la distribution.

  • size – la forme de la sortie. Si c’est un tuple, un tableau de cette forme est renvoyé. Si c’est None (la valeur par défaut), un unique float Python tiré dans [0.0, 1.0) est renvoyé (les bornes low/high sont ignorées dans le cas scalaire).

Renvoie:

soit un float Python, soit un numpy.ndarray de flottants de la forme demandée.

Lève:
  • ValueError – si la forme demandée dépasse ULAB_MAX_DIMS.

  • TypeError – si size n’est ni None ni un tuple.

Avec des arguments par défaut identiques, uniform() produit la même séquence que random().