numpy生成隨機(jī)數(shù)的常用方法解析
隨機(jī)數(shù)在數(shù)據(jù)分析和機(jī)器學(xué)習(xí)中具有重要的作用。numpy是Python中一個(gè)常用的數(shù)值計(jì)算庫(kù),提供了多種生成隨機(jī)數(shù)的方法。本文將對(duì)numpy生成隨機(jī)數(shù)的常用方法進(jìn)行解析,并給出具體的代碼示例。
- 隨機(jī)整數(shù)
numpy提供了生成隨機(jī)整數(shù)的函數(shù)numpy.random.randint()。該函數(shù)可以生成指定范圍內(nèi)的隨機(jī)整數(shù)。
import numpy as np # 生成范圍在[low, high)之間的隨機(jī)整數(shù) rand_int = np.random.randint(low, high, size)
登錄后復(fù)制
其中,low表示生成隨機(jī)整數(shù)的下界(包含),high表示上界(不包含),size表示生成的隨機(jī)整數(shù)的數(shù)量。
示例:
import numpy as np rand_int = np.random.randint(1, 10, size=5) print(rand_int)
登錄后復(fù)制
輸出:
[4 9 5 3 1]
上述代碼生成了5個(gè)范圍在1到10之間的隨機(jī)整數(shù)。
- 隨機(jī)浮點(diǎn)數(shù)
numpy提供了生成隨機(jī)浮點(diǎn)數(shù)的函數(shù)numpy.random.rand()和numpy.random.randn()。
import numpy as np # 生成[0, 1)之間的均勻分布的隨機(jī)浮點(diǎn)數(shù) rand_float = np.random.rand(size) # 生成符合標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)浮點(diǎn)數(shù) rand_normal_float = np.random.randn(size)
登錄后復(fù)制
其中,rand_float生成[0, 1)之間均勻分布的隨機(jī)浮點(diǎn)數(shù),rand_normal_float生成符合標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)浮點(diǎn)數(shù)。size表示生成的隨機(jī)浮點(diǎn)數(shù)的數(shù)量。
示例:
import numpy as np rand_float = np.random.rand(5) rand_normal_float = np.random.randn(5) print(rand_float) print(rand_normal_float)
登錄后復(fù)制
輸出:
[0.83600534 0.69029467 0.44770399 0.61348757 0.93889918]
[-0.9200914 0.45598762 -0.76400891 -0.18554811 1.67634905]
上述代碼生成了一個(gè)長(zhǎng)度為5的均勻分布隨機(jī)浮點(diǎn)數(shù)數(shù)組和一個(gè)長(zhǎng)度為5的標(biāo)準(zhǔn)正態(tài)分布隨機(jī)浮點(diǎn)數(shù)數(shù)組。
- 隨機(jī)種子
numpy生成的隨機(jī)數(shù)默認(rèn)是偽隨機(jī)數(shù),即每次運(yùn)行程序生成的隨機(jī)數(shù)是不同的。如果想要生成相同的隨機(jī)數(shù)序列,可以使用隨機(jī)種子。
import numpy as np # 設(shè)置隨機(jī)種子 np.random.seed(seed)
登錄后復(fù)制
其中,seed表示隨機(jī)種子的值。相同隨機(jī)種子生成的隨機(jī)數(shù)序列是相同的。
示例:
import numpy as np np.random.seed(0) rand_int = np.random.randint(1, 10, size=5) print(rand_int) np.random.seed(0) rand_int = np.random.randint(1, 10, size=5) print(rand_int)
登錄后復(fù)制
輸出:
[6 1 4 8 4]
[6 1 4 8 4]
上述代碼設(shè)置了隨機(jī)種子為0,使用相同的隨機(jī)種子生成了兩個(gè)相同的隨機(jī)整數(shù)數(shù)組。
通過本文對(duì)numpy生成隨機(jī)數(shù)的常用方法的解析和代碼示例,相信讀者能更加熟悉numpy庫(kù)中生成隨機(jī)數(shù)的操作。在數(shù)據(jù)分析和機(jī)器學(xué)習(xí)等領(lǐng)域,隨機(jī)數(shù)的生成是常見的操作,掌握這些方法對(duì)于進(jìn)行相關(guān)的數(shù)據(jù)實(shí)驗(yàn)和模型訓(xùn)練是非常有幫助的。