numpy.random.RandomState.triangular#
方法
- random.RandomState.triangular(left, mode, right, size=None)#
從區間
[left, right]
的三角形分佈中抽取樣本。三角形分佈是一種連續機率分佈,具有下限 left、峰值 mode 和上限 right。與其他分佈不同,這些參數直接定義了 pdf 的形狀。
注意
新程式碼應使用
triangular
方法,此方法屬於Generator
實例;請參閱快速入門。- 參數:
- leftfloat 或 float 陣列型物件
下限。
- modefloat 或 float 陣列型物件
分佈峰值出現的值。該值必須滿足條件
left <= mode <= right
。- rightfloat 或 float 陣列型物件
上限,必須大於 left。
- sizeint 或 int 元組,可選
輸出形狀。如果給定的形狀是例如
(m, n, k)
,則會抽取m * n * k
個樣本。如果 size 是None
(預設值),則當left
、mode
和right
都是純量時,會傳回單一值。否則,會抽取np.broadcast(left, mode, right).size
個樣本。
- 返回:
- outndarray 或 純量
從參數化的三角形分佈中抽取的樣本。
參見
random.Generator.triangular
新程式碼應使用的方法。
註解
三角形分佈的機率密度函數為
\[\begin{split}P(x;l, m, r) = \begin{cases} \frac{2(x-l)}{(r-l)(m-l)}& \text{for $l \leq x \leq m$},\\ \frac{2(r-x)}{(r-l)(r-m)}& \text{for $m \leq x \leq r$},\\ 0& \text{otherwise}. \end{cases}\end{split}\]三角形分佈常被用於定義不明確的問題,在這些問題中,底層分佈是未知的,但存在關於限制和眾數的一些知識。它經常被用於模擬中。
參考文獻
[1]Wikipedia, “Triangular distribution” https://en.wikipedia.org/wiki/Triangular_distribution
範例
從分佈中抽取值並繪製直方圖
>>> import matplotlib.pyplot as plt >>> h = plt.hist(np.random.triangular(-3, 0, 8, 100000), bins=200, ... density=True) >>> plt.show()