numpy.random — Geração de números aleatórios

O submódulo numpy.random fornece uma classe Generator que extrai amostras de distribuições de probabilidade comuns. O algoritmo subjacente é um gerador congruencial permutado (PCG); consulte https://www.pcg-random.org/ para obter detalhes.

Um Generator é um objeto com estado: cada chamada a um dos seus métodos de amostragem avança o estado interno, pelo que chamadas consecutivas devolvem amostras independentes. Os arrays de saída são sempre do dtype numpy.float.

Classes

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

Constrói um novo gerador de números pseudo-aleatórios.

Parâmetros:

seed – o valor inicial (seed) utilizado para inicializar o estado do gerador. Se for fornecido um inteiro, é utilizado diretamente. Se for fornecida uma tupla de inteiros, é devolvida uma tupla de objetos Generator inicializados de forma independente (um por elemento) em vez de uma única instância. Se for fornecido None, é utilizado um valor inicial predefinido pela plataforma (quando configurado em tempo de compilação); caso contrário, é levantado um ValueError.

Levanta:
  • TypeError – se seed não for None, um inteiro ou uma tupla de inteiros.

  • ValueError – se seed for None e não estiver configurado nenhum valor inicial predefinido.

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

Extrai amostras de uma distribuição normal (Gaussiana).

Parâmetros:
  • loc – a média (centro) da distribuição.

  • scale – o desvio padrão (largura) da distribuição. Deve ser não negativo.

  • size – a forma da saída. Se for um inteiro, é devolvido um array unidimensional com esse comprimento. Se for uma tupla, é devolvido um array com essa forma. Se for None (o valor predefinido), é devolvido um único float Python.

Retorno:

um float Python ou um numpy.ndarray de float com a forma solicitada.

Levanta:
  • ValueError – se a forma solicitada exceder ULAB_MAX_DIMS.

  • TypeError – se size não for None, um inteiro nem uma tupla.

As amostras são geradas utilizando a transformação de Box-Muller.

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

Extrai amostras da distribuição uniforme sobre o intervalo semi-aberto [0.0, 1.0).

Parâmetros:
  • size – a forma da saída. Se for um inteiro, é devolvido um array unidimensional com esse comprimento. Se for uma tupla, é devolvido um array com essa forma. Se for None (o valor predefinido) e out também for None, é devolvido um único float Python.

  • out – um numpy.ndarray de float denso e pré-alocado opcional para receber as amostras. Se size e out forem ambos fornecidos, as suas formas devem coincidir.

Retorno:

um float Python, um novo numpy.ndarray ou out (preenchido com amostras) consoante os argumentos.

Levanta:
  • TypeError – se size tiver um tipo não suportado, ou out não for um ndarray, ou out não for do dtype float.

  • ValueError – se a forma solicitada exceder ULAB_MAX_DIMS, se size e out.shape não coincidirem, ou se out não for contíguo.

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

Extrai amostras da distribuição uniforme sobre o intervalo semi-aberto [low, high).

Parâmetros:
  • low – o limite inferior (inclusivo) da distribuição.

  • high – o limite superior (exclusivo) da distribuição.

  • size – a forma da saída. Se for uma tupla, é devolvido um array com essa forma. Se for None (o valor predefinido), é devolvido um único float Python extraído de [0.0, 1.0) (os limites low/high são ignorados no caso escalar).

Retorno:

um float Python ou um numpy.ndarray de float com a forma solicitada.

Levanta:
  • ValueError – se a forma solicitada exceder ULAB_MAX_DIMS.

  • TypeError – se size não for None nem uma tupla.

Com argumentos predefinidos idênticos, uniform() produz a mesma sequência que random().