
В днешния свят данните играят важна роля в процеса на вземане на решения и разбирането им е от решаващо значение за всеки бизнес. Анализът на данните включва различни техники, една от които е изобразяване на числа от нормално разпределение. Нормалното разпределение е общо разпределение на вероятностите, известно още като разпределение на Гаус или камбановидна крива. В тази статия ще проучим проблема с изобразяването на произволни числа от нормално разпределение с помощта на Python, ще разберем включените библиотеки и ще анализираме кода, за да разберем всяка стъпка.
Библиотеки и функции за нормално разпространение
Python предлага няколко библиотеки, които могат да ни помогнат при генерирането и начертаването на числа от нормално разпределение. Две от най-широко използваните библиотеки за тази цел са NumPy и Matplotlib.
numpy е мощна библиотека за работа с масиви и извършване на различни числени изчисления. Ще го използваме за генериране на произволни числа от нормално разпределение. Някои важни функции в NumPy за нашия проблем включват np.random.normal() и np.linspace().
Матплотлиб е библиотека за създаване на статични, интерактивни и анимирани визуализации в Python. Ще го използваме, за да визуализираме нормалното разпределение на генерираните произволни числа. Основната функция, която ще използваме от тази библиотека, е plt.hist().
Сега нека се задълбочим в решението за начертаване на тези произволни числа и да разберем кода стъпка по стъпка.
Решение: График на числа от нормално разпределение
За да покажем решението, ще използваме следния код на Python:
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()
Сега нека разбием кода и да го разберем в детайли.
1. Започваме с импортиране на необходимите библиотеки: NumPy и Matplotlib.
2. Задаваме необходимите параметри за генериране на произволни числа. Тук, mu представлява средната стойност, сигма представлява стандартното отклонение и n представлява броя на произволните числа, които искаме да генерираме.
3. Ние генерираме произволните числа с помощта на функцията np.random.normal(), като предоставяме средната стойност, стандартното отклонение и броя на произволните числа.
4. Създаваме linspace с помощта на np.linspace() за стойности, вариращи от mu-3*sigma до mu+3*sigma, което представлява диапазона за оста x, покриващ приблизително 99.7% от точките с данни.
5. Използваме функцията plt.hist() от Matplotlib, за да начертаем хистограмата. Ние определяме контейнерите, като предоставяме създаденото от нас linspace и задаваме плътността на true за нормализиране. Алфа параметърът е зададен на 0.6 за прозрачност и цвят на 'g' за зелено.
6. Задаваме етикета на оста x, етикета на оста y и заглавието на хистограмата, използвайки съответно функциите plt.xlabel(), plt.ylabel() и plt.title().
7. Накрая показваме хистограмата с помощта на plt.show().
Разбиране на функцията np.random.normal().
Функцията np.random.normal() е многофункционална функция в библиотеката NumPy. Позволява ни да генерираме произволни проби от нормално (гаусово) разпределение. Функцията приема три аргумента:
– loc (float): Средна стойност („център“) на разпределението.
– мащаб (float): стандартно отклонение (разпространение или „ширина“) на разпределението.
– размер (int или tuple of ints): Форма на изхода, която определя броя произволни числа за генериране.
С помощта на тази функция можем лесно да генерираме произволни числа и да ги начертаем с помощта на хистограма, както е показано в горния код.
В заключение, Python, заедно със своите мощни библиотеки като NumPy и Matplotlib, прави начертаването на числа от нормално разпределение лесна задача. Разбирането на тези библиотеки и техните функции е от съществено значение за обработката на данни и ефективното им визуализиране. С няколко реда код можем да генерираме произволни числа и да визуализираме тяхното разпределение, което прави Python отличен избор за статистически анализ и визуализация на данни.