Como usar a função np.random.normal no Python?
Como obter números aleatórios distribuídos normalmente com o NumPy
A distribuição normal é uma das distribuições de probabilidade mais úteis, pois modela muitos fenômenos naturais muito bem. Com o NumPy, é possível criar amostras de números aleatórios a partir da distribuição normal.
Essa distribuição também é chamada de distribuição Gaussiana ou simplesmente de curva em forma de sino. A última dica sobre a forma da distribuição quando ela é plotada:
A distribuição normal é simétrica em torno de seu pico. Devido a essa simetria, a média da distribuição, frequentemente denotada por μ , está nesse pico. O desvio padrão, σ , descreve a dispersão da distribuição.
Se algumas amostras são distribuídas normalmente, então é provável que uma amostra aleatória tenha um valor próximo à média. Na verdade, cerca de 68% de todas as amostras estão dentro de um desvio padrão da média.
É possível interpretar a área sob a curva no gráfico como uma medida de probabilidade. A área colorida escura, que representa todas as amostras menores que um desvio padrão da média, corresponde a 68% da área total sob a curva.
Neste tutorial, você aprenderá como usar a biblioteca NumPy do Python para trabalhar com a distribuição normal e, mais especificamente, como criar números aleatórios distribuídos normalmente. Ao longo do caminho, você conhecerá o gerador de números aleatórios (RNG) do NumPy e como garantir que seja possível trabalhar com aleatoriedade de maneira reprodutível.
Também verá como visualizar distribuições de probabilidade com o Matplotlib e histogramas, bem como o efeito da manipulação da média e do desvio padrão. O teorema do limite central explica a importância da distribuição normal. Ele descreve como a média de qualquer experimento ou medida repetida se aproxima da distribuição normal.
Como aprenderá, é possível fazer uma análise estatística poderosa com o código Python correto. Para obter o código deste tutorial, clique no link abaixo:
Shell
Além de obter o NumPy, você instalou o Matplotlib e o SciPy, então está pronto para começar.
Como usar o NumPy para gerar números aleatórios distribuídos normalmente
Python
O RNG pode gerar números aleatórios de várias distribuições, incluindo a distribuição normal. Para gerar números normalmente distribuídos, use a função random.normal()
:
Python
Neste exemplo, np.random.default_rng().normal(0, 1, 100)
gera 100 números aleatórios normalmente distribuídos, com média 0 e desvio padrão 1. Os valores resultantes são armazenados na variável samples
.
Plotando seus números normalmente distribuídos
Depois de gerar seus números normalmente distribuídos, você provavelmente gostaria de plotá-los para visualizar a distribuição. O Matplotlib é a biblioteca perfeita para essa tarefa.
Para plotar um histograma dos seus números, utilize a função hist()
do Matplotlib:
Python
Neste exemplo, plt.hist(samples, bins=30)
gera um histograma dos números normalmente distribuídos armazenados na variável samples
, com 30 bins para agrupar os valores. Os rótulos dos eixos x e y e um título são adicionados ao gráfico. Por fim, plt.show()
exibe o gráfico.
Especificando a média e o desvio padrão
Ao trabalhar com a distribuição normal, é possível especificar tanto a média quanto o desvio padrão desejados para os números gerados. A função np.random.normal()
permite fazer isso:
Python
Nesse exemplo, np.random.normal(5, 2, 500)
gera 500 números aleatórios normalmente distribuídos, com média 5 e desvio padrão 2. Esses valores são armazenados na variável samples
.
Trabalhando com números aleatórios no NumPy
Além da geração de números aleatórios normalmente distribuídos, o NumPy oferece muitas outras funcionalidades para trabalhar com números aleatórios.
Por exemplo, é possível gerar inteiros aleatórios dentro de um intervalo específico utilizando a função np.random.randint()
:
Python
Nesse caso, np.random.randint(1, 101, 10)
gera 10 inteiros aleatórios entre 1 e 100. Os valores resultantes são armazenados na variável random_ints
.
Iterar em direção à normalidade com o Teorema do Limite Central
Uma das propriedades mais interessantes da distribuição normal é o Teorema do Limite Central. Esse teorema afirma que a média de uma amostra grande o suficiente de medidas independentes de uma população qualquer se aproxima de uma distribuição normal.
Python
Neste exemplo, um loop é usado para simular a média de uma amostra grande de valores aleatórios uniformemente distribuídos. A cada iteração do loop, uma amostra de 100 valores aleatórios uniformemente distribuídos é gerada, e a média dessa amostra é calculada e adicionada à lista means
. Essas médias amostrais são então plotadas em um histograma para visualizar a distribuição resultante.
Conclusão
Neste tutorial, você aprendeu como usar o NumPy para gerar números aleatórios distribuídos normalmente. Você viu como criar amostras de números aleatórios normalmente distribuídos, bem como como especificar a média e o desvio padrão desejados. Também aprendeu a visualizar distribuições de probabilidade com o Matplotlib e a entender o Teorema do Limite Central.
A distribuição normal desempenha um papel fundamental na estatística e na modelagem de muitos fenômenos naturais. Ao dominar as técnicas de geração e manipulação de números aleatórios normalmente distribuídos, você terá uma poderosa ferramenta em seu kit de ferramentas de análise de dados.
Agora você pode começar a explorar por conta própria e aplicar essas técnicas em seus próprios projetos de Python!