一、概述
numpy正態分布是概率統計中的重要概念,也是numpy中的一個常用函數,常用於生成隨機數和概率分布的模擬。它可以用一組數值來表示某個隨機變量的分布情況,其圖像呈鐘形曲線,中間部分高而兩端低。正態分布函數包含兩個參數,即平均值和標準差,通過調整這兩個參數可以控制正態分布的形狀。接下來從幾個方面來詳細闡述numpy正態分布。
二、生成正態分布隨機數
import numpy as np
import matplotlib.pyplot as plt
# 生成隨機數
mu, sigma = 0, 0.1 # 平均值和標準差
s = np.random.normal(mu, sigma, 1000)
# 繪圖
count, bins, ignored = plt.hist(s, 30, density=True)
plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) * np.exp(-(bins - mu)**2 / (2 * sigma**2)),
linewidth=2, color='r')
plt.show()
numpy中的random模塊可以用於生成正態分布的隨機數,需要傳入平均值和標準差作為參數。上述代碼生成了1000個均值為0,標準差為0.1的正態分布隨機數,並通過matplotlib庫繪製了對應的概率密度函數圖像。可以看到,其呈鐘形曲線,且中心圍繞着0值,兩端隨着距離0的增大呈指數下降。
三、計算正態分布概率密度函數值
import numpy as np
def norm_pdf(x, mu, sigma):
"""
計算正態分布概率密度函數值
:param x: 自變量
:param mu: 均值
:param sigma: 標準差
:return: 對應的概率密度函數值
"""
return np.exp(-((x - mu) ** 2) / (2 * (sigma ** 2))) / (sigma * np.sqrt(2 * np.pi))
x_values = np.linspace(-10, 10, num=100) # 獲取x軸的數值
y_values = norm_pdf(x_values, 0, 1) # 獲取對應的y軸數值
# 繪圖
import matplotlib.pyplot as plt
plt.plot(x_values, y_values, 'b')
plt.show()
我們可以定義一個函數來計算正態分布函數的值,並使用numpy中linspace函數得到一組x軸坐標,根據正態分布函數公式計算對應的y軸坐標。上述代碼繪製了均值為0,標準差為1的正態分布的概率密度函數圖像。可見在x軸0點處概率密度函數值最大。
四、生成二維正態分布
import numpy as np
import matplotlib.pyplot as plt
# 均值和協方差矩陣
mu = np.array([0., 0.])
sigma = np.array([[ 1. , 0.5], [0.5, 1.]])
# 生成二維正態分布樣本
x, y = np.random.multivariate_normal(mu, sigma, 1000).T
# 繪圖
fig, ax = plt.subplots()
ax.plot(x, y, 'x')
plt.axis('equal')
plt.show()
二維正態分布是一種隨機向量的概率分布,可以用二元高斯分布表示,它與單維正態分布類似,也有均值和方差這兩個參數,並且具有相互獨立的組成元素。上述代碼演示了如何通過numpy中函數multivariate_normal生成二維正態分布樣本,傳入均值和協方差矩陣作為參數即可。得到樣本之後,可以使用matplotlib庫進行繪圖。通過散點圖展示得到的樣本,得到的圖形呈現橢圓形狀,且中心處有一點集中。
五、正態分布應用
除了生成隨機數和計算概率密度函數外,正態分布在實際應用中也有較多的場景。例如,正態分布可以用於建立回歸模型,也可以用於判斷隨機過程是否符合正態分布假設等。
六、總結
正態分布是概率統計領域中的重要概念,numpy中提供了生成隨機數、計算概率密度函數、生成二維正態分布樣本等多個功能函數,是數據分析和統計建模中常用的工具之一。在實際應用中,正態分布在建模和數據分析過程中發揮了重要作用。
原創文章,作者:BZOEO,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/334412.html