Riješeno: nacrtati n brojeva iz normalne distribucije

U današnjem svijetu podaci igraju važnu ulogu u procesu donošenja odluka, a njihovo razumijevanje je ključno za svako poslovanje. Analiza podataka uključuje niz tehnika, od kojih je jedna crtanje brojeva iz normalne distribucije. Normalna distribucija je uobičajena raspodjela vjerovatnoće, također poznata kao Gausova raspodjela ili zvonasta kriva. U ovom članku ćemo istražiti problem iscrtavanja slučajnih brojeva iz normalne distribucije koristeći Python, razumjeti uključene biblioteke i analizirati kod kako bismo razumjeli svaki korak.

Biblioteke i funkcije za normalnu distribuciju

Python nudi nekoliko biblioteka koje nam mogu pomoći u generiranju i crtanju brojeva iz normalne distribucije. Dvije od najčešće korištenih biblioteka za ovu svrhu su NumPy i Matplotlib.

numpy je moćna biblioteka za rukovanje nizovima i izvođenje različitih numeričkih izračunavanja. Koristićemo ga za generisanje slučajnih brojeva iz normalne distribucije. Neke važne funkcije u NumPy-u za naš problem uključuju np.random.normal() i np.linspace().

matplotlib je biblioteka za kreiranje statičkih, interaktivnih i animiranih vizualizacija u Pythonu. Koristit ćemo ga za vizualizaciju normalne distribucije generiranih slučajnih brojeva. Primarna funkcija koju ćemo koristiti iz ove biblioteke je plt.hist().

Hajde sada da se udubimo u rešenje za crtanje ovih nasumičnih brojeva i razumemo kod korak po korak.

Rješenje: crtanje brojeva iz normalne distribucije

Da bismo prikazali rješenje, koristit ćemo sljedeći Python kod:

import numpy as np
import matplotlib.pyplot as plt

mu = 0
sigma = 1
n = 1000

samples = np.random.normal(mu, sigma, n)
x = np.linspace(mu - 3 * sigma, mu + 3 * sigma, 100)

plt.hist(samples, bins=x, density=True, alpha=0.6, color='g')
plt.xlabel('Random Numbers')
plt.ylabel('Frequency')
plt.title('Plotting Numbers from a Normal Distribution')

plt.show()

Sada hajde da razložimo kod i razumemo ga detaljno.

1. Počinjemo uvozom potrebnih biblioteka: NumPy i Matplotlib.

2. Postavljamo parametre potrebne za generisanje slučajnih brojeva. ovdje, mu predstavlja sredinu, Sigma predstavlja standardnu ​​devijaciju, i n predstavlja broj slučajnih brojeva koje želimo generirati.

3. Generiramo slučajne brojeve koristeći funkciju np.random.normal() tako što ćemo dati srednju vrijednost, standardnu ​​devijaciju i broj slučajnih brojeva.

4. Kreiramo linspace koristeći np.linspace() za vrijednosti u rasponu od mu-3*sigma do mu+3*sigma, što predstavlja raspon za x-osu koja pokriva približno 99.7% tačaka podataka.

5. Koristimo plt.hist() funkciju iz Matplotlib-a za iscrtavanje histograma. Mi specificiramo binove dajući linspace koji smo kreirali, a gustoću postavljamo na true za normalizaciju. Alfa parametar je postavljen na 0.6 za transparentnost i boju na 'g' za zelenu.

6. Postavljamo oznaku x-ose, oznaku y-ose i naslov histograma koristeći funkcije plt.xlabel(), plt.ylabel(), odnosno plt.title().

7. Na kraju, prikazujemo histogram koristeći plt.show().

Razumijevanje funkcije np.random.normal().

Funkcija np.random.normal() je svestrana funkcija unutar NumPy biblioteke. Omogućava nam da generišemo slučajne uzorke iz normalne (Gausove) distribucije. Funkcija uzima tri argumenta:

– loc (float): Srednja vrijednost (“centar”) distribucije.
– skala (float): Standardna devijacija (širina ili „širina“) distribucije.
– veličina (int ili tuple of ints): izlazni oblik, koji određuje broj slučajnih brojeva za generiranje.

Koristeći ovu funkciju, možemo s lakoćom generirati nasumične brojeve i iscrtati ih pomoću histograma, kao što je prikazano u gornjem kodu.

U zaključku, Python, zajedno sa svojim moćnim bibliotekama kao što su NumPy i Matplotlib, čini crtanje brojeva iz normalne distribucije lakim zadatkom. Razumijevanje ovih biblioteka i njihovih funkcija je od suštinskog značaja za rukovanje podacima i njihovo efikasno vizualiziranje. Sa nekoliko linija koda možemo generirati nasumične brojeve i vizualizirati njihovu distribuciju, što Python čini odličnim izborom za statističku analizu i vizualizaciju podataka.

Slični postovi:

Ostavite komentar