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 (預設值),則當 leftmoderight 均為純量時,會傳回單一值。否則,將抽取 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()
../../../_images/numpy-random-triangular-1.png