numpy.random — Generování náhodných čísel

Podmodul numpy.random poskytuje třídu Generator, která vzorkuje z běžných pravděpodobnostních rozdělení. Použitým algoritmem je permutovaný kongruentní generátor (PCG); podrobnosti viz https://www.pcg-random.org/.

Generator je objekt se stavem: každé volání některé z jeho vzorkovacích metod posune vnitřní stav, takže po sobě jdoucí volání vracejí nezávislé vzorky. Výstupní pole jsou vždy dtype numpy.float.

Třídy

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

Vytvoří nový generátor pseudonáhodných čísel.

Parametry:

seed – semínko (seed) použité k inicializaci stavu generátoru. Pokud je zadáno celé číslo, použije se přímo. Pokud je zadána n-tice celých čísel, vrátí se místo jediné instance n-tice nezávisle inicializovaných objektů Generator (jeden na každý prvek). Pokud je zadáno None, použije se výchozí semínko platformy (je-li nakonfigurováno v době sestavení); jinak je vyvolán ValueError.

Vyvolá:
  • TypeError – pokud seed není None, celé číslo ani n-tice celých čísel.

  • ValueError – pokud je seed None a žádné výchozí semínko není nakonfigurováno.

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

Vzorkuje z normálního (Gaussova) rozdělení.

Parametry:
  • loc – střední hodnota (střed) rozdělení.

  • scale – směrodatná odchylka (šířka) rozdělení. Musí být nezáporná.

  • size – tvar výstupu. Pokud jde o celé číslo, vrátí se jednorozměrné pole dané délky. Pokud jde o n-tici, vrátí se pole daného tvaru. Pokud je None (výchozí), vrátí se jediný Python float.

Vrací:

buď Python float, nebo float numpy.ndarray požadovaného tvaru.

Vyvolá:
  • ValueError – pokud požadovaný tvar překračuje ULAB_MAX_DIMS.

  • TypeError – pokud size není ani None, ani celé číslo, ani n-tice.

Vzorky se generují pomocí Box-Mullerovy transformace.

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

Vzorkuje z rovnoměrného rozdělení na polouzavřeném intervalu [0.0, 1.0).

Parametry:
  • size – tvar výstupu. Pokud jde o celé číslo, vrátí se jednorozměrné pole dané délky. Pokud jde o n-tici, vrátí se pole daného tvaru. Pokud je None (výchozí) a out je rovněž None, vrátí se jediný Python float.

  • out – volitelné předem alokované, husté float numpy.ndarray pro příjem vzorků. Pokud jsou zadány size i out, musí se jejich tvary shodovat.

Vrací:

Python float, nové numpy.ndarray nebo out (naplněné vzorky) v závislosti na argumentech.

Vyvolá:
  • TypeError – pokud má size nepodporovaný typ, nebo out není ndarray, nebo out nemá dtype float.

  • ValueError – pokud požadovaný tvar překračuje ULAB_MAX_DIMS, pokud se size a out.shape neshodují, nebo pokud out není souvislé.

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

Vzorkuje z rovnoměrného rozdělení na polouzavřeném intervalu [low, high).

Parametry:
  • low – dolní mez (včetně) rozdělení.

  • high – horní mez (vyjma) rozdělení.

  • size – tvar výstupu. Pokud jde o n-tici, vrátí se pole daného tvaru. Pokud je None (výchozí), vrátí se jediný Python float vzorkovaný z [0.0, 1.0) (meze low/high se ve skalárním případě ignorují).

Vrací:

buď Python float, nebo float numpy.ndarray požadovaného tvaru.

Vyvolá:
  • ValueError – pokud požadovaný tvar překračuje ULAB_MAX_DIMS.

  • TypeError – pokud size není ani None, ani n-tice.

Se shodnými výchozími argumenty produkuje uniform() stejnou posloupnost jako random().