一、numpy.random.normal函數
numpy.random.normal是numpy的隨機抽樣函數之一,用來生成符合正態分布的隨機數。其函數原型如下:
numpy.random.normal(loc=0.0, scale=1.0, size=None)
其中,loc表示分布的均值,scale表示分布的標準差,size表示生成的隨機數的形狀。
下面我們來看一下如何使用該函數生成隨機數。
import numpy as np #生成一個形狀為(3,4)的矩陣,均值為0,標準差為1的隨機數 x = np.random.normal(0,1,(3,4)) print(x)
輸出結果如下:
array([[-0.95266681, 0.40985143, -0.06706892, 1.55458521], [-0.68607825, 0.3017523 , -0.26802721, 0.32318363], [ 0.80570355, -1.09996266, -2.60677328, 0.22833181]])
二、numpy.random.normal()
除了函數以外,numpy還提供了一種更加簡單的方法生成符合正態分布的隨機數——numpy.random.normal()。該函數可以直接作用於生成的矩陣,我們仍以前面的例子為例。
import numpy as np #生成一個形狀為(3,4)的矩陣,均值為0,標準差為1的隨機數 x = np.random.normal(size=(3,4)) print(x)
輸出結果如下:
array([[ 0.21269568, 0.15002288, 1.40993888, 1.33271572], [ 0.96861535, 0.30290143, -0.36537699, -0.28479163], [-1.07651303, -1.32463878, -1.2718044 , 0.2071916 ]])
三、numpy.random.normal是什麼意思
我們可以使用numpy.random.normal生成符合正態分布的隨機數,那麼正態分布是什麼呢?
正態分布,又叫高斯分布,是一種常見的概率分布,也是一種偏態分布。正態分布可以用一個函數表示,其概率密度函數如下:
其中μ和σ分別表示分布的均值和標準差。μ表示分布的中心位置,σ表示分布的波動大小(也稱分布的散布程度)。在正態分布中,大約有68%的數據在距離μ一個σ以內的區間中,大約有95%的數據在距離μ兩個σ以內的區間中,大約有99.7%的數據在距離μ三個σ以內的區間中。
四、numpy.random.normal的應用
numpy.random.normal在實際應用中有著廣泛的用途。下面我們通過一個例子來說明。
假設我們要通過隨機數模擬一個隨著時間推移,農場中每隻母牛產出的牛奶量的變化。牛奶的產量符合正態分布,其均值為50升,標準差為10升。我們可以通過如下代碼生成符合該分布的隨機數。
import numpy as np import matplotlib.pyplot as plt #參數設置 mu, sigma = 50, 10 num_samples = 1000 #生成符合正態分布的隨機數 cow_milk = np.random.normal(mu, sigma, num_samples) #繪圖 plt.hist(cow_milk, bins=50, density=True, alpha=0.6, color='g') plt.title('Milk Production of Cows') plt.xlabel('Milk Production (liters/day)') plt.ylabel('Probability Density') plt.grid(True) plt.show()
運行上述程序,我們可以得到如下的概率密度圖:
我們可以看到,該圖符合我們對該分布的預期。大多數牛每天都會產出約50升的牛奶,而在產量偏高或偏低的牛的數據分布上,呈現出很自然的左右傾斜的特點。
五、總結
通過對numpy.random.normal的分析,我們可以了解到該函數的功能和使用方法。numpy.random.normal函數是numpy的隨機抽樣函數之一,用來生成符合正態分布的隨機數。numpy.random.normal還可以直接作用於生成的矩陣,生成符合正態分布的隨機數。在實際應用中,numpy.random.normal可以用來模擬很多實際的隨機現象,並且可以方便地繪製概率分布圖。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/191090.html