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(預設值),則當 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}\]

三角形分佈常被用於定義不明確的問題,在這些問題中,底層分佈是未知的,但存在關於限制和眾數的一些知識。它經常被用於模擬中。

參考文獻

[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()
../../../_images/numpy-random-RandomState-triangular-1.png