numpy.random — Generowanie liczb losowych

Podmoduł numpy.random udostępnia klasę Generator, która losuje próbki z typowych rozkładów prawdopodobieństwa. Bazowy algorytm to permutowany generator kongruencyjny (PCG); szczegóły można znaleźć pod adresem https://www.pcg-random.org/.

Generator to obiekt ze stanem: każde wywołanie jednej z jego metod próbkowania przesuwa stan wewnętrzny, dzięki czemu kolejne wywołania zwracają niezależne próbki. Tablice wyjściowe zawsze mają dtype numpy.float.

Klasy

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

Tworzy nowy generator liczb pseudolosowych.

Parametry:

seed – ziarno używane do zainicjowania stanu generatora. Jeśli podana zostanie liczba całkowita, jest ona używana bezpośrednio. Jeśli podana zostanie krotka liczb całkowitych, zamiast pojedynczej instancji zwracana jest krotka niezależnie zaziarnionych obiektów Generator (po jednym na element). Jeśli podano None, używane jest domyślne ziarno platformy (o ile zostało skonfigurowane podczas budowania); w przeciwnym razie zgłaszany jest ValueError.

Wyrzuca:
  • TypeError – jeśli seed nie jest None, liczbą całkowitą ani krotką liczb całkowitych.

  • ValueError – jeśli seed ma wartość None, a żadne domyślne ziarno nie jest skonfigurowane.

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

Losuje próbki z rozkładu normalnego (Gaussa).

Parametry:
  • loc – średnia (środek) rozkładu.

  • scale – odchylenie standardowe (szerokość) rozkładu. Musi być nieujemne.

  • size – kształt wyniku. Jeśli liczba całkowita, zwracana jest jednowymiarowa tablica o tej długości. Jeśli krotka, zwracana jest tablica o tym kształcie. Jeśli None (wartość domyślna), zwracany jest pojedynczy float Pythona.

Zwraca:

albo float Pythona, albo numpy.ndarray typu float o żądanym kształcie.

Wyrzuca:
  • ValueError – jeśli żądany kształt przekracza ULAB_MAX_DIMS.

  • TypeError – jeśli size nie jest ani None, ani liczbą całkowitą, ani krotką.

Próbki są generowane przy użyciu transformacji Boxa-Mullera.

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

Losuje próbki z rozkładu jednostajnego na przedziale półotwartym [0.0, 1.0).

Parametry:
  • size – kształt wyniku. Jeśli liczba całkowita, zwracana jest jednowymiarowa tablica o tej długości. Jeśli krotka, zwracana jest tablica o tym kształcie. Jeśli None (wartość domyślna), a out również ma wartość None, zwracany jest pojedynczy float Pythona.

  • out – opcjonalna, wstępnie zaalokowana, gęsta tablica numpy.ndarray typu float, do której mają zostać zapisane próbki. Jeśli podano zarówno size, jak i out, ich kształty muszą się zgadzać.

Zwraca:

float Pythona, nowa numpy.ndarray lub out (wypełniony próbkami), w zależności od argumentów.

Wyrzuca:
  • TypeError – jeśli size ma nieobsługiwany typ, lub out nie jest tablicą ndarray, lub out nie ma dtype float.

  • ValueError – jeśli żądany kształt przekracza ULAB_MAX_DIMS, jeśli size i out.shape się nie zgadzają, lub jeśli out nie jest ciągły.

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

Losuje próbki z rozkładu jednostajnego na przedziale półotwartym [low, high).

Parametry:
  • low – dolna granica (włącznie) rozkładu.

  • high – górna granica (wyłącznie) rozkładu.

  • size – kształt wyniku. Jeśli krotka, zwracana jest tablica o tym kształcie. Jeśli None (wartość domyślna), zwracany jest pojedynczy float Pythona wylosowany z [0.0, 1.0) (granice low/high są ignorowane w przypadku skalarnym).

Zwraca:

albo float Pythona, albo numpy.ndarray typu float o żądanym kształcie.

Wyrzuca:
  • ValueError – jeśli żądany kształt przekracza ULAB_MAX_DIMS.

  • TypeError – jeśli size nie jest ani None, ani krotką.

Przy identycznych argumentach domyślnych uniform() generuje tę samą sekwencję co random().