numpy.random.Generator.uniform#

方法

random.Generator.uniform(low=0.0, high=1.0, size=None)#

從均勻分佈中抽取樣本。

樣本在半開區間 [low, high) (包含 low,但不包含 high) 上均勻分佈。換句話說,給定區間內的任何值都同樣可能被 uniform 抽取。

參數:
lowfloat 或 float 的類陣列 (array_like),選用

輸出區間的下邊界。所有產生的值都會大於或等於 low。預設值為 0。

highfloat 或 float 的類陣列 (array_like)

輸出區間的上邊界。所有產生的值都會小於 high。由於方程式 low + (high-low) * random_sample() 中的浮點數捨入,high 限制可能包含在傳回的 float 陣列中。high - low 必須是非負數。預設值為 1.0。

sizeint 或 int 的 tuple,選用

輸出形狀。如果給定的形狀是例如 (m, n, k),則會抽取 m * n * k 個樣本。如果 size 是 None (預設值),則如果 lowhigh 都是純量,則傳回單一值。否則,會抽取 np.broadcast(low, high).size 個樣本。

返回:
outndarray 或 純量

從參數化的均勻分佈中抽取的樣本。

參見

integers

離散均勻分佈,產生整數。

random

[0, 1) 上均勻分佈的浮點數。

註解

均勻分佈的機率密度函數為

\[p(x) = \frac{1}{b - a}\]

在區間 [a, b) 內的任何位置,在其他地方為零。

high == low 時,將傳回 low 的值。

範例

從分佈中抽取樣本

>>> rng = np.random.default_rng()
>>> s = rng.uniform(-1,0,1000)

所有值都在給定區間內

>>> np.all(s >= -1)
True
>>> np.all(s < 0)
True

顯示樣本的直方圖,以及機率密度函數

>>> import matplotlib.pyplot as plt
>>> count, bins, _ = plt.hist(s, 15, density=True)
>>> plt.plot(bins, np.ones_like(bins), linewidth=2, color='r')
>>> plt.show()
../../../_images/numpy-random-Generator-uniform-1.png