NumPy 中的隨機數

什么是隨機數?

隨機數并不意味著每次都有不同的數字。隨機意味著無法在邏輯上預測的事物。

偽隨機和真隨機

計算機在程序上工作,程序是權威的指令集。因此,這意味著必須有某種算法來生成隨機數。

如果存在生成隨機數的程序,則可以預測它,因此它就不是真正的隨機數。

通過生成算法生成的隨機數稱為偽隨機數。

我們可以生成真正的隨機數嗎?

是的。為了在我們的計算機上生成一個真正的隨機數,我們需要從某個外部來源獲取隨機數據。外部來源通常是我們的擊鍵、鼠標移動、網絡數據等。

我們不需要真正的隨機數,除非它與安全性(例如加密密鑰)有關或應用的基礎是隨機性(例如數字輪盤賭輪)。

在本教程中,我們將使用偽隨機數。

生成隨機數

NumPy 提供了 random 模塊來處理隨機數。

實例

生成一個 0 到 100 之間的隨機整數:

from numpy import random
x = random.randint(100)
print(x)

運行實例

生成隨機浮點

random 模塊的 rand() 方法返回 0 到 1 之間的隨機浮點數。

實例

生成一個 0 到 100 之間的隨機浮點數:

from numpy import random
x = random.rand()
print(x)

運行實例

生成隨機數組

在 NumPy 中,我們可以使用上例中的兩種方法來創建隨機數組。

整數

randint() 方法接受 size 參數,您可以在其中指定數組的形狀。

實例

生成一個 1-D 數組,其中包含 5 個從 0 到 100 之間的隨機整數:

from numpy import random
x=random.randint(100, size=(5))
print(x)

運行實例

實例

生成有 3 行的 2-D 數組,每行包含 5 個從 0 到 100 之間的隨機整數:

from numpy import random
x = random.randint(100, size=(3, 5))
print(x)

運行實例

浮點數

rand() 方法還允許您指定數組的形狀。

實例

生成包含 5 個隨機浮點數的 1-D 數組:

from numpy import random
x = random.rand(5)
print(x)

運行實例

實例

生成有 3 行的 2-D 數組,每行包含 5 個隨機數:

from numpy import random
x = random.rand(3, 5)
print(x)

運行實例

從數組生成隨機數

choice() 方法使您可以基于值數組生成隨機值。

choice() 方法將數組作為參數,并隨機返回其中一個值。

實例

返回數組中的值之一:

from numpy import random
x = random.choice([3, 5, 7, 9])
print(x)

運行實例

choice() 方法還允許您返回一個值數組。

請添加一個 size 參數以指定數組的形狀。

實例

生成由數組參數(3、5、7 和 9)中的值組成的二維數組:

from numpy import random
x = random.choice([3, 5, 7, 9], size=(3, 5))
print(x)

運行實例