Python?numpy中np.random.seed()的詳細(xì)用法實(shí)例
引言
在進(jìn)行機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中,我們會經(jīng)常用到np.random.seed(),利用隨機(jī)數(shù)種子,使得每次生成的隨機(jī)數(shù)相同。
numpy.randn.randn(d0,d1,...,dn)
- randn函數(shù)根據(jù)給定維度生成大概率在(-2.58~+2.58)之間的數(shù)據(jù)
- randn函數(shù)返回一個或者一組樣本,具有標(biāo)準(zhǔn)正態(tài)分布
- dn表示每個維度
- 返回值為指定維度的array
import numpy as np a = np.random.randn(2,4) #4*2矩陣 print(a) b = np.random.randn(4,3,2) #shape:4*3*2 print(b)

我們將帶著兩個問題進(jìn)行np.random.seed()的學(xué)習(xí):
1.np.random.seed()是否一直有效?
2.np.random.seed(Argument)的參數(shù)作用?
E.G.實(shí)驗
# -*- coding: utf-8 -*-
# @Time : 2019/10/26 20:57
# @Author : BaoBao
# @Mail : baobaotql@163.com
# @File : random.seed.py
# @Software: PyCharm
import numpy as np
if __name__ == '__main__':
i = 0
while (i < 6):
if (i < 3):
np.random.seed(0)
print(np.random.randn(1, 5))
else:
print(np.random.randn(1, 5))
pass
i += 1
print("-------------------")
i = 0
while (i < 2):
print(np.random.randn(1, 5))
i += 1
print(np.random.randn(2, 5))
print("---------reset----------")
np.random.seed(0)
i = 0
while (i < 8):
print(np.random.randn(1, 5))
i += 1運(yùn)行截圖:

可以看出,np.random.seed()對后面的隨機(jī)數(shù)一直有效。
兩次利用random.seed()后,即使跳出循環(huán)以后,生成隨機(jī)數(shù)的結(jié)果依然相同。第一次跳出while循環(huán)后,進(jìn)入第二次while循環(huán),
得到的兩個隨機(jī)數(shù)組確實(shí)和加了隨機(jī)數(shù)種子不一樣。但是后面的加入隨機(jī)數(shù)種子的,八次循環(huán)中的結(jié)果和前面的結(jié)果是一樣的。說明,
隨機(jī)數(shù)種子對后面的結(jié)果一直有影響。同時,加入隨機(jī)數(shù)種子以后,后面的數(shù)組都是按一定的順序生成的。
E.G.隨機(jī)數(shù)種子參數(shù)的作用
# -*- coding: utf-8 -*-
# @Time : 2019/10/26 20:57
# @Author : BaoBao
# @Mail : baobaotql@163.com
# @File : random.seed.py
# @Software: PyCharm
import numpy as np
if __name__ == '__main__':
i = 0
np.random.seed(0)
while (i < 3):
print(np.random.randn(1, 5))
i += 1
i = 0
print("---------------------")
np.random.seed(1)
i = 0
while (i < 3):
print(np.random.randn(1, 5))
i += 1運(yùn)行截圖:

當(dāng)隨機(jī)數(shù)種子參數(shù)為0和1時,生成的隨機(jī)數(shù)結(jié)果相同。說明該參數(shù)指定了一個隨機(jī)數(shù)生成的起始位置。每個參數(shù)對應(yīng)一個位置。
并且在該參數(shù)確定后,其后面的隨機(jī)數(shù)的生成順序也就確定了。所以,隨機(jī)數(shù)種子的參數(shù)怎么選擇?這個參數(shù)只是確定一下隨機(jī)數(shù)的起始位置,可隨意分配.
補(bǔ)充:一個隨機(jī)種子在代碼中只作用一次,只作用于其定義位置的下一次隨機(jī)數(shù)生成
import numpy as np
num=0
print(np.random.random())#沒有設(shè)置隨機(jī)種子 那么這里是根據(jù)系統(tǒng)時間為參數(shù)生成的隨機(jī)數(shù)
np.random.seed(5)
while(num<5):
print(np.random.random())
num+=1

總結(jié)
到此這篇關(guān)于Python numpy中np.random.seed()詳細(xì)用法的文章就介紹到這了,更多相關(guān)numpy.random.seed()的用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Numpy中np.random.rand()和np.random.randn() 用法和區(qū)別詳解
- python numpy之np.random的隨機(jī)數(shù)函數(shù)使用介紹
- numpy.random.shuffle打亂順序函數(shù)的實(shí)現(xiàn)
- numpy.random模塊用法總結(jié)
- Numpy之random函數(shù)使用學(xué)習(xí)
- 基于numpy.random.randn()與rand()的區(qū)別詳解
- numpy.random.seed()的使用實(shí)例解析
- 詳述numpy中的np.random.random()系列函數(shù)用法
相關(guān)文章
python中實(shí)現(xiàn)將多個print輸出合成一個數(shù)組
下面小編就為大家分享一篇python中實(shí)現(xiàn)將多個print輸出合成一個數(shù)組,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
pandas中的.assign()方法的用法示例小結(jié)
pandas中的.assign()方法用于創(chuàng)建一個新的DataFrame,其中包含現(xiàn)有DataFrame的副本,并附加了指定的新列或更新了現(xiàn)有列,.assign()方法還可以鏈?zhǔn)绞褂?以添加多個新列或更新現(xiàn)有列,對pandas中的.assign()方法感興趣的朋友跟隨小編一起看看吧2023-10-10
利用pandas將numpy數(shù)組導(dǎo)出生成excel的實(shí)例
今天小編就為大家分享一篇利用pandas將numpy數(shù)組導(dǎo)出生成excel的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06

