NumPy隨機數(shù)生成函數(shù)的多種實現(xiàn)方法
更新時間:2026年01月07日 09:23:35 作者:追逐此刻
NumPy的numpy.random模塊提供了多種隨機數(shù)生成函數(shù),包括基礎隨機數(shù)生成、概率分布抽樣和隨機排列,這些函數(shù)適用于各種場景,下面就來詳細的介紹一下,感興趣的可以了解一下
NumPy 的 numpy.random 模塊提供了豐富的隨機數(shù)生成函數(shù),覆蓋基礎隨機數(shù)組、概率分布抽樣和隨機排列等功能。以下是常用函數(shù)的詳細解析:
一、基礎隨機數(shù)生成函數(shù)
1.np.random.rand(d0, d1, ..., dn)
- 功能:生成 [0, 1) 均勻分布的隨機浮點數(shù)數(shù)組
- 參數(shù):
d0, d1...為數(shù)組維度(整數(shù)) - 示例:
np.random.rand(2, 3) # 生成 2行3列的隨機數(shù)組 # 輸出:array([[0.12, 0.34, 0.56], [0.78, 0.90, 0.23]])
2.np.random.randn(d0, d1, ..., dn)
- 功能:生成符合標準正態(tài)分布(μ=0, σ=1)的隨機數(shù)
- 參數(shù):同
rand() - 示例:
np.random.randn(2) # 生成2個標準正態(tài)分布隨機數(shù) # 輸出:array([-0.45, 1.23])
3.np.random.randint(low, high=None, size=None, dtype=int)
- 功能:生成 [low, high) 區(qū)間的整數(shù)隨機數(shù)
- 參數(shù):
low:下限(包含)high:上限(不包含,若未提供則從0開始)size:輸出形狀
- 示例:
np.random.randint(1, 10, size=(3,)) # 生成3個1-9的整數(shù) # 輸出:array([5, 2, 8])
4.np.random.random(size=None)
- 功能:生成 [0.0, 1.0) 均勻分布的隨機浮點數(shù)(單個數(shù)或數(shù)組)
- 示例:
np.random.random((2,2)) # 2x2隨機矩陣 # 輸出:array([[0.45, 0.78], [0.12, 0.90]])
二、概率分布抽樣函數(shù)
1.np.random.uniform(low=0.0, high=1.0, size=None)
- 功能:生成指定區(qū)間 [low, high) 的均勻分布隨機數(shù)
- 示例:
np.random.uniform(-1, 1, size=3) # 3個[-1,1)的均勻分布數(shù) # 輸出:array([-0.23, 0.56, -0.89])
2.np.random.normal(loc=0.0, scale=1.0, size=None)
- 功能:生成指定均值(loc)和標準差(scale)的正態(tài)分布
- 示例:
np.random.normal(loc=5, scale=2, size=2) # N(5, 22)的2個樣本 # 輸出:array([4.89, 6.12])
3.np.random.binomial(n, p, size=None)
- 功能:生成二項分布(n次試驗,成功概率p)的隨機數(shù)
- 示例:
np.random.binomial(n=10, p=0.5, size=3) # 3次10重伯努利試驗的成功次數(shù) # 輸出:array([5, 7, 4])
4.np.random.poisson(lam=1.0, size=None)
- 功能:生成泊松分布(λ=lam)的隨機數(shù)
- 示例:
np.random.poisson(lam=3, size=4) # λ=3的4個泊松樣本 # 輸出:array([2, 4, 3, 5])
三、隨機抽樣與排列
1.np.random.choice(a, size=None, replace=True, p=None)
- 功能:從序列
a中隨機抽樣 - 參數(shù):
replace:是否允許重復抽樣(默認True)p:各元素抽樣概率(需與a長度相同)
- 示例:
np.random.choice([1,2,3,4], size=3, p=[0.1,0.2,0.3,0.4]) # 按概率抽樣3個元素,輸出:array([3,4,4])
2.np.random.shuffle(x)
- 功能:原地打亂數(shù)組x(修改原數(shù)組)
- 示例:
arr = np.array([1,2,3,4]) np.random.shuffle(arr) # arr變?yōu)?[3,1,4,2]
3.np.random.permutation(x)
- 功能:生成數(shù)組x的隨機排列(不修改原數(shù)組)
- 示例:
np.random.permutation([1,2,3,4]) # 輸出:array([2,4,1,3])
四、隨機種子設置
np.random.seed(42) # 設置隨機種子,保證結果可復現(xiàn) np.random.rand(2) # 每次運行結果相同:array([0.37, 0.95])
關鍵區(qū)別總結
| 函數(shù)組 | 核心特點 | 典型應用場景 |
|---|---|---|
| rand/randn | 無需參數(shù)直接指定維度,快捷生成數(shù)組 | 快速創(chuàng)建隨機矩陣 |
| uniform/normal | 可自定義分布參數(shù)(區(qū)間/均值等) | 模擬特定概率分布的數(shù)據(jù) |
| choice/shuffle | 針對序列的抽樣與重排 | 隨機選樣、打亂數(shù)據(jù)順序 |
到此這篇關于NumPy隨機數(shù)生成函數(shù)的多種實現(xiàn)方法的文章就介紹到這了,更多相關NumPy隨機數(shù)生成函數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:
- NumPy隨機數(shù)據(jù)分布與Seaborn可視化詳解
- NumPy數(shù)組排序、過濾與隨機數(shù)生成詳解
- Numpy創(chuàng)建數(shù)組和隨機數(shù)組的方法小結
- numpy中幾種隨機數(shù)生成函數(shù)的用法
- Python NumPy中的隨機數(shù)及ufuncs函數(shù)使用示例詳解
- numpy 產生隨機數(shù)的幾種方法
- numpy中生成隨機數(shù)的幾種常用函數(shù)(小結)
- python numpy之np.random的隨機數(shù)函數(shù)使用介紹
- python numpy 常用隨機數(shù)的產生方法的實現(xiàn)
- Python使用numpy產生正態(tài)分布隨機數(shù)的向量或矩陣操作示例
相關文章
python之lambda表達式與sort函數(shù)中的key用法
這篇文章主要介紹了python之lambda表達式與sort函數(shù)中的key用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
深入了解Python?Opencv數(shù)據(jù)增強
常見的數(shù)據(jù)增強操作有:按比例放大或縮小圖片、旋轉、平移、水平翻轉、改變圖像通道等。本文將通過Python?OpenCV實現(xiàn)這些操作,需要的可以參考一下2022-02-02

