NumPy是用Python進行科學計算的基礎軟體包之一。NumPy為Python提供了大量對多維數組和矩陣運算的支持。本文將介紹如何使用NumPy來生成各種類型的隨機數組。
一、一維隨機數組生成
我們可以使用NumPy中的random模塊生成一維的隨機數組。以下是生成均勻分布和正態分布的一維隨機數組的示例代碼:
>>> import numpy as np
>>> # 生成均勻分布的一維隨機數組
>>> uniform_arr = np.random.rand(10)
>>> print(uniform_arr)
>>> # 生成正態分布的一維隨機數組
>>> normal_arr = np.random.randn(10)
>>> print(normal_arr)
代碼中,np.random.rand(n)生成大小為n的[0,1)之間的均勻分布的隨機數;np.random.randn(n)生成大小為n的標準正態分布的隨機數。
二、二維隨機數組生成
使用NumPy生成二維隨機數組也非常簡單,我們只需在生成隨機數組時指定shape參數即可。以下是一些常見的二維隨機數組生成方式:
1. 生成均勻分布的二維隨機數組
以下代碼示例展示了如何生成均勻分布的二維隨機數組:
>>> # 生成大小為3行4列的均勻分布的隨機數組
>>> uniform_arr = np.random.rand(3, 4)
>>> # 輸出生成的隨機數組
>>> print(uniform_arr)
代碼中,np.random.rand(m,n)生成大小為m×n的[0,1)之間的均勻分布的隨機數。
2. 生成標準正態分布的二維隨機數組
下面的代碼展示如何生成標準正態分布的二維隨機數組:
>>> # 生成大小為2行3列的標準正態分布的隨機數組
>>> normal_arr = np.random.randn(2, 3)
>>> # 輸出生成的隨機數組
>>> print(normal_arr)
代碼中,np.random.randn(m,n)生成大小為m×n的標準正態分布的隨機數。
3. 生成指定範圍的二維隨機數組
通過指定隨機數生成的範圍可以得到我們需要的二維隨機數組。以下是指定範圍生成隨機數組的示例代碼:
>>> # 生成大小為2行3列,數值在[0, 10)範圍內的隨機數組
>>> rand_arr = np.random.randint(0, 10, size=(2, 3))
>>> # 輸出生成的隨機數組
>>> print(rand_arr)
代碼中,np.random.randint(low, high=None, size=None, dtype=’l’)生成大小為size的隨機整數數組,其中low指定隨機數下界,high指定上界,size是一個整數或元組,dtype指定返回數組的數據類型。
三、生成符合特定要求的隨機數組
在實際的數據分析領域中,常常需要生成符合特定分布、均值、標準差等要求的隨機數組。下面通過一些常見的需求例子來演示如何實現:
1. 生成符合正態分布的隨機數組
以下代碼展示了如何生成均值為μ,標準差為σ的正態分布隨機數組:
>>> # 生成均值為3,標準差為1的正態分布隨機數組
>>> mu, sigma = 3, 1
>>> normal_arr = np.random.normal(mu, sigma, size=5)
>>> print(normal_arr)
代碼中,np.random.normal(loc=0.0, scale=1.0, size=None)生成均值為loc,標準差為scale的正態分布隨機數。
2. 生成符合泊松分布的隨機數組
泊松分布是一種用於描述事件發生次數的概率分布。以下代碼展示了如何生成符合泊松分布的隨機數組:
>>> # 生成平均發生率為3的泊松分布隨機數組
>>> lam = 3
>>> poisson_arr = np.random.poisson(lam, size=5)
>>> print(poisson_arr)
代碼中,np.random.poisson(lam=1.0, size=None)生成平均發生率為lam的泊松分布隨機數。
3. 生成符合二項分布的隨機數組
二項分布是一種用於描述成功次數的概率分布。以下代碼展示了如何生成符合二項分布的隨機數組:
>>> # 生成n=5,p=0.5的二項分布隨機數組
>>> n, p = 5, 0.5
>>> binomial_arr = np.random.binomial(n, p, size=5)
>>> print(binomial_arr)
代碼中,np.random.binomial(n, p, size=None)生成n次試驗中成功概率為p的二項分布隨機數。
4. 生成符合指定概率分布的隨機數組
NumPy中還支持其他很多概率分布的隨機數生成,例如:指數分布、常見的離散型分布(如超幾何分布、卡方分布、F分布、t分布等)。以下代碼演示如何生成符合超幾何分布的隨機數組:
>>> # 生成符合超幾何分布的隨機數組
>>> hypergeom_arr = np.random.hypergeometric(10, 5, 3, size=5)
>>> print(hypergeom_arr)
代碼中,np.random.hypergeometric(ngood, nbad, nsample, size=None)生成符合超幾何分布的隨機數,其中ngood表示總體中好的物品數量,nbad表示差的物品數量,nsample表示抽取的樣本數量。
總結
NumPy提供了豐富的隨機數生成功能,我們可以輕鬆地生成各種形狀、大小、分布的隨機數,這對於模擬實驗、數據分析和機器學習等領域都非常有用。以上內容僅是NumPy隨機數生成的入門介紹,更多高級用法請參考官方文檔。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/160076.html