numpy.random.triangular#
- random.triangular(left, mode, right, size=None)#
從區間
[left, right]
的三角分佈中抽取樣本。三角分佈是一種連續機率分佈,其下限為 left,峰值為 mode,上限為 right。與其他分佈不同,這些參數直接定義了 PDF 的形狀。
注意
新程式碼應使用
triangular
方法,此方法屬於Generator
實例;請參閱快速入門。- 參數:
- left浮點數 或 浮點數的類陣列
下限。
- mode浮點數 或 浮點數的類陣列
分佈峰值出現的值。該值必須滿足條件
left <= mode <= right
。- right浮點數 或 浮點數的類陣列
上限,必須大於 left。
- size整數 或 整數元組,選填
輸出形狀。如果給定的形狀為,例如
(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}\]三角分佈常被用於不明確的問題中,在這些問題中,底層分佈未知,但對極限和眾數 (mode) 有一些了解。它通常用於模擬中。
參考文獻
[1]Wikipedia, “三角分佈” 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()