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 mais detalhes.

Um Generator é um objeto com estado: cada chamada a um de seus métodos de amostragem avança o estado interno, de modo que chamadas consecutivas retornam 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 pseudoaleatórios.

Parâmetros:

seed – a semente usada para inicializar o estado do gerador. Se um inteiro for fornecido, ele é usado diretamente. Se uma tupla de inteiros for fornecida, uma tupla de objetos Generator semeados de forma independente (um por elemento) é retornada em vez de uma única instância. Se None for fornecido, uma semente padrão da plataforma é usada (quando há uma configurada em tempo de compilação); caso contrário, um ValueError é levantado.

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

  • ValueError – se seed for None e nenhuma semente padrão estiver configurada.

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 – o formato da saída. Se for um inteiro, um array unidimensional desse comprimento é retornado. Se for uma tupla, um array desse formato é retornado. Se for None (o padrão), um único float do Python é retornado.

Retorna:

ou um float do Python ou um numpy.ndarray de floats do formato solicitado.

Levanta:
  • ValueError – se o formato solicitado exceder ULAB_MAX_DIMS.

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

As amostras são geradas usando a transformada 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 semiaberto [0.0, 1.0).

Parâmetros:
  • size – o formato da saída. Se for um inteiro, um array unidimensional desse comprimento é retornado. Se for uma tupla, um array desse formato é retornado. Se for None (o padrão) e out também for None, um único float do Python é retornado.

  • out – um numpy.ndarray de floats, denso e pré-alocado, opcional, para receber as amostras. Se tanto size quanto out forem fornecidos, seus formatos devem coincidir.

Retorna:

um float do Python, um novo numpy.ndarray ou out (preenchido com as amostras), dependendo dos 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 o formato solicitado exceder ULAB_MAX_DIMS, se size e out.shape divergirem, 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 semiaberto [low, high).

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

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

  • size – o formato da saída. Se for uma tupla, um array desse formato é retornado. Se for None (o padrão), um único float do Python extraído de [0.0, 1.0) é retornado (os limites low/high são ignorados no caso escalar).

Retorna:

ou um float do Python ou um numpy.ndarray de floats do formato solicitado.

Levanta:
  • ValueError – se o formato solicitado exceder ULAB_MAX_DIMS.

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

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