本文簡要介紹 python 語言中 numpy.random.Generator.gumbel
的用法。
用法:
random.Generator.gumbel(loc=0.0, scale=1.0, size=None)
從 Gumbel 分布中抽取樣本。
從具有指定位置和比例的 Gumbel 分布中抽取樣本。有關 Gumbel 分布的更多信息,請參閱下麵的注釋和參考。
- loc: float 或 數組 的浮點數,可選
分布模式的位置。默認值為 0。
- scale: float 或 數組 的浮點數,可選
分布的尺度參數。默認值為 1。必須為非負數。
- size: int 或整數元組,可選
輸出形狀。例如,如果給定的形狀是
(m, n, k)
,則繪製m * n * k
樣本。如果 size 為None
(默認),如果loc
和scale
都是標量,則返回單個值。否則,將抽取np.broadcast(loc, scale).size
樣本。
- out: ndarray 或標量
從參數化 Gumbel 分布中抽取樣本。
參數:
返回:
注意:
Gumbel(或最小極值 (SEV) 或最小極值類型 I)分布是用於對極值問題建模的一類廣義極值 (GEV) 分布。 Gumbel 是極值 I 型分布的一個特例,用於具有 “exponential-like” 尾部分布的最大值。
Gumbel 分布的概率密度為
其中 是模式,位置參數, 是比例參數。
Gumbel(以德國數學家 Emil Julius Gumbel 命名)很早就在水文學文獻中用於模擬洪水事件的發生。它還用於模擬最大風速和降雨率。這是一個 “fat-tailed” 分布 - 分布尾部發生事件的概率比使用高斯分布的概率更大,因此 100 年洪水的發生令人驚訝地頻繁。洪水最初被建模為高斯過程,它低估了極端事件的頻率。
它是一類極值分布,即廣義極值 (GEV) 分布,其中還包括 Weibull 和 Frechet。
該函數的平均值為 ,方差為 。
參考:
Gumbel, E. J.,“極端統計”,紐約:哥倫比亞大學出版社,1958 年。
賴斯,R.-D。和 Thomas, M.,“保險、金融、水文和其他領域極值的統計分析”,巴塞爾:Birkhauser Verlag,2001 年。
1:
2:
例子:
從分布中抽取樣本:
>>> rng = np.random.default_rng() >>> mu, beta = 0, 0.1 # location and scale >>> s = rng.gumbel(mu, beta, 1000)
顯示樣本的直方圖以及概率密度函數:
>>> import matplotlib.pyplot as plt >>> count, bins, ignored = plt.hist(s, 30, density=True) >>> plt.plot(bins, (1/beta)*np.exp(-(bins - mu)/beta) ... * np.exp( -np.exp( -(bins - mu) /beta) ), ... linewidth=2, color='r') >>> plt.show()
顯示極值分布如何從高斯過程中產生並與高斯過程進行比較:
>>> means = [] >>> maxima = [] >>> for i in range(0,1000) : ... a = rng.normal(mu, beta, 1000) ... means.append(a.mean()) ... maxima.append(a.max()) >>> count, bins, ignored = plt.hist(maxima, 30, density=True) >>> beta = np.std(maxima) * np.sqrt(6) / np.pi >>> mu = np.mean(maxima) - 0.57721*beta >>> plt.plot(bins, (1/beta)*np.exp(-(bins - mu)/beta) ... * np.exp(-np.exp(-(bins - mu)/beta)), ... linewidth=2, color='r') >>> plt.plot(bins, 1/(beta * np.sqrt(2 * np.pi)) ... * np.exp(-(bins - mu)**2 / (2 * beta**2)), ... linewidth=2, color='g') >>> plt.show()
相關用法
- Python numpy Generator.geometric用法及代碼示例
- Python numpy Generator.gamma用法及代碼示例
- Python numpy Generator.multivariate_normal用法及代碼示例
- Python numpy Generator.standard_normal用法及代碼示例
- Python numpy Generator.bytes用法及代碼示例
- Python numpy Generator.shuffle用法及代碼示例
- Python numpy Generator.choice用法及代碼示例
- Python numpy Generator.random用法及代碼示例
- Python numpy Generator.logseries用法及代碼示例
- Python numpy Generator.uniform用法及代碼示例
- Python numpy Generator.standard_t用法及代碼示例
- Python numpy Generator.standard_cauchy用法及代碼示例
- Python numpy Generator.normal用法及代碼示例
- Python numpy Generator.poisson用法及代碼示例
- Python numpy Generator.power用法及代碼示例
- Python numpy Generator.laplace用法及代碼示例
- Python numpy Generator.vonmises用法及代碼示例
- Python numpy Generator.noncentral_f用法及代碼示例
- Python numpy Generator.multivariate_hypergeometric用法及代碼示例
- Python numpy Generator.weibull用法及代碼示例
- Python numpy Generator.pareto用法及代碼示例
- Python numpy Generator.noncentral_chisquare用法及代碼示例
- Python numpy Generator.negative_binomial用法及代碼示例
- Python numpy Generator.binomial用法及代碼示例
- Python numpy Generator.standard_exponential用法及代碼示例
注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.random.Generator.gumbel。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。