numpy.random.RandomState.uniform#

方法

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

從均勻分佈中抽取樣本。

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

注意

新程式碼應使用 uniform 方法,此方法屬於 Generator 實例;請參閱快速入門

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

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

highfloat 或 float 的類陣列 (array_like)

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

sizeint 或 int 的 tuple,選用

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

傳回值:
outndarray 或 純量

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

另請參閱

randint

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

random_integers

在閉區間 [low, high] 上的離散均勻分佈。

random_sample

[0, 1) 上均勻分佈的 Float。

random

random_sample 的別名。

rand

方便函數,接受維度作為輸入,例如,rand(2,2) 會產生一個 2x2 的 float 陣列,均勻分佈在 [0, 1) 上。

random.Generator.uniform

新程式碼應使用此函數。

註解

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

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

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

high == low 時,將傳回 low 的值。如果 high < low,則結果在官方上是未定義的,最終可能會引發錯誤,即不要依賴此函數在傳遞滿足該不等式條件的引數時的行為。high 上限可能會包含在傳回的 float 陣列中,因為方程式 low + (high-low) * random_sample() 中的浮點數捨入。例如

>>> x = np.float32(5*0.99999999)
>>> x
np.float32(5.0)

範例

從分佈中抽取樣本

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

所有值都在給定區間內

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

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

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