Python?numpy中np.random.seed()的詳細(xì)用法實(shí)例
引言
在進(jìn)行機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中,我們會(huì)經(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ù)返回一個(gè)或者一組樣本,具有標(biāo)準(zhǔn)正態(tài)分布
- dn表示每個(gè)維度
- 返回值為指定維度的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)
我們將帶著兩個(gè)問(wèn)題進(jìn)行np.random.seed()的學(xué)習(xí):
1.np.random.seed()是否一直有效?
2.np.random.seed(Argument)的參數(shù)作用?
E.G.實(shí)驗(yàn)
# -*- 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()對(duì)后面的隨機(jī)數(shù)一直有效。
兩次利用random.seed()后,即使跳出循環(huán)以后,生成隨機(jī)數(shù)的結(jié)果依然相同。第一次跳出while循環(huán)后,進(jìn)入第二次while循環(huán),
得到的兩個(gè)隨機(jī)數(shù)組確實(shí)和加了隨機(jī)數(shù)種子不一樣。但是后面的加入隨機(jī)數(shù)種子的,八次循環(huán)中的結(jié)果和前面的結(jié)果是一樣的。說(shuō)明,
隨機(jī)數(shù)種子對(duì)后面的結(jié)果一直有影響。同時(shí),加入隨機(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時(shí),生成的隨機(jī)數(shù)結(jié)果相同。說(shuō)明該參數(shù)指定了一個(gè)隨機(jī)數(shù)生成的起始位置。每個(gè)參數(shù)對(duì)應(yīng)一個(gè)位置。
并且在該參數(shù)確定后,其后面的隨機(jī)數(shù)的生成順序也就確定了。所以,隨機(jī)數(shù)種子的參數(shù)怎么選擇?這個(gè)參數(shù)只是確定一下隨機(jī)數(shù)的起始位置,可隨意分配.
補(bǔ)充:一個(gè)隨機(jī)種子在代碼中只作用一次,只作用于其定義位置的下一次隨機(jī)數(shù)生成
import numpy as np num=0 print(np.random.random())#沒(méi)有設(shè)置隨機(jī)種子 那么這里是根據(jù)系統(tǒng)時(shí)間為參數(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)容請(qǐng)搜索腳本之家以前的文章或繼續(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)將多個(gè)print輸出合成一個(gè)數(shù)組
下面小編就為大家分享一篇python中實(shí)現(xiàn)將多個(gè)print輸出合成一個(gè)數(shù)組,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Selenium 滾動(dòng)頁(yè)面至元素可見(jiàn)的方法
這篇文章主要介紹了Selenium 滾動(dòng)頁(yè)面至元素可見(jiàn)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03python實(shí)現(xiàn)簡(jiǎn)單俄羅斯方塊游戲
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單俄羅斯方塊游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01pandas中的.assign()方法的用法示例小結(jié)
pandas中的.assign()方法用于創(chuàng)建一個(gè)新的DataFrame,其中包含現(xiàn)有DataFrame的副本,并附加了指定的新列或更新了現(xiàn)有列,.assign()方法還可以鏈?zhǔn)绞褂?以添加多個(gè)新列或更新現(xiàn)有列,對(duì)pandas中的.assign()方法感興趣的朋友跟隨小編一起看看吧2023-10-10利用pandas將numpy數(shù)組導(dǎo)出生成excel的實(shí)例
今天小編就為大家分享一篇利用pandas將numpy數(shù)組導(dǎo)出生成excel的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06使用GPT-3訓(xùn)練垃圾短信分類(lèi)器示例詳解
這篇文章主要為大家介紹了使用GPT-3訓(xùn)練垃圾短信分類(lèi)器示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02