NumPy 隨機數(shù)

什么是隨機數(shù)?

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

偽隨機和真隨機

計算機在程序上工作,程序是權(quán)威的指令集。因此,這意味著必須有某種算法來生成隨機數(shù)。
如果存在生成隨機數(shù)的程序,則可以預測它,因此它就不是真正的隨機數(shù)。
通過生成算法生成的隨機數(shù)稱為偽隨機數(shù)。
我們可以生成真正的隨機數(shù)嗎?
是的。為了在我們的計算機上生成一個真正的隨機數(shù),我們需要從某個外部來源獲取隨機數(shù)據(jù)。外部來源通常是我們的擊鍵、鼠標移動、網(wǎng)絡(luò)數(shù)據(jù)等。
我們不需要真正的隨機數(shù),除非它與安全性(例如加密密鑰)有關(guān)或應(yīng)用的基礎(chǔ)是隨機性(例如數(shù)字輪盤賭輪)。
在本教程中,我們將使用偽隨機數(shù)。

生成隨機數(shù)

NumPy 提供了 random 模塊來處理隨機數(shù),以下演示生成一個 0 到 100 之間的隨機整數(shù):

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

生成隨機浮點

random 模塊的 rand() 方法返回 0 到 1 之間的隨機浮點數(shù),以下演示生成一個 0 到 100 之間的隨機浮點數(shù):

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

生成隨機數(shù)組

在 NumPy 中,我們可以使用上例中的兩種方法來創(chuàng)建隨機數(shù)組,randint() 方法接受 size 參數(shù),您可以在其中指定數(shù)組的形狀。
以下演示生成一個 1-D 數(shù)組,其中包含 5 個從 0 到 100 之間的隨機整數(shù):

 >>> from numpy import random
 >>> x=random.randint(100, size=(5))
 >>> print(x)
 [36 14 12 91 36]

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

 >>> from numpy import random
 >>> x = random.randint(100, size=(3, 5))
 >>> print(x)
 [[20 64 23 6 66]
  [74 11 21 61 70]
  [24 47 22 22 31]]

rand() 方法還允許您指定數(shù)組的形狀。以下演示生成包含 5 個隨機浮點數(shù)的 1-D 數(shù)組:

 >>> from numpy import random
 >>> x = random.rand(5)
 >>> print(x)
 [0.63254731 0.0275278 0.83592219 0.41890601 0.84496798]

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

 >>> from numpy import random
 >>> x = random.rand(3, 5)
 >>> print(x)
 [[0.51798216 0.70541454 0.03600922 0.2279383 0.2184512 ]
  [0.91734846 0.07877026 0.75949221 0.7876666 0.20983625]
  [0.25935065 0.37637584 0.7793815 0.65035139 0.66673048]]

choice() 從數(shù)組生成隨機數(shù)

方法使您可以基于值數(shù)組生成隨機值。 方法將數(shù)組作為參數(shù),并隨機返回其中一個值。

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

choice() 方法還允許您返回一個值數(shù)組。請?zhí)砑右粋€ size 參數(shù)以指定數(shù)組的形狀。生成由數(shù)組參數(shù)(3、5、7 和 9)中的值組成的二維數(shù)組:

 >>> from numpy import random
 >>> x = random.choice([3, 5, 7, 9], size=(3, 5))
 >>> print(x)
 [[7 9 7 5 9]
  [3 3 3 7 9]
  [7 5 9 3 7]]
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清