numpy.random.seed()的使用實(shí)例解析
這個(gè)函數(shù)的使用方法,已經(jīng)有前輩講解過(guò)了,只是自己在測(cè)試的時(shí)候有一些思考,所以便寫(xiě)了這篇博客。下面是前輩文章的原話:
seed( ) 用于指定隨機(jī)數(shù)生成時(shí)所用算法開(kāi)始的整數(shù)值,如果使用相同的seed( )值,則每次生成的隨即數(shù)都相同,如果不設(shè)置這個(gè)值,則系統(tǒng)根據(jù)時(shí)間來(lái)自己選擇這個(gè)值,此時(shí)每次生成的隨機(jī)數(shù)因時(shí)間差異而不同。
編寫(xiě)如下第一份代碼:
from numpy import * num=0 while(num<5): random.seed(5) print(random.random()) num+=1
運(yùn)行結(jié)果為:
0.22199317108973948
0.22199317108973948
0.22199317108973948
0.22199317108973948
0.22199317108973948
可以看到,每次運(yùn)行的結(jié)果都是一樣的
修改代碼,如下為第二份代碼:
from numpy import * num=0 random.seed(5) while(num<5): print(random.random()) num+=1
運(yùn)行結(jié)果為:
0.22199317108973948
0.8707323061773764
0.20671915533942642
0.9186109079379216
0.48841118879482914
可以看到,和上一份代碼的運(yùn)行結(jié)果不同。這里每次的輸出結(jié)果都是不一樣的。這也就提醒了我們?cè)谝院缶帉?xiě)代碼的時(shí)候要明白一點(diǎn):random.seed(something)只能是一次有效。其實(shí)仔細(xì)想想也很自然,如果不是一次有效,比如說(shuō)是一直有效,那豈不是會(huì)影響到后續(xù)的代碼中隨機(jī)數(shù)的選???
這次測(cè)試的代碼比較可以說(shuō)是很簡(jiǎn)單的,但是卻暴露了我的一個(gè)思維上的漏洞:在這次測(cè)試中我雖然明白了:
seed( ) 用于指定隨機(jī)數(shù)生成時(shí)所用算法開(kāi)始的整數(shù)值,如果使用相同的seed( )值,則每次生成的隨即數(shù)都相同,如果不設(shè)置這個(gè)值,則系統(tǒng)根據(jù)時(shí)間來(lái)自己選擇這個(gè)值,此時(shí)每次生成的隨機(jī)數(shù)因時(shí)間差異而不同。
這段話的意思,但是我卻先入為主地認(rèn)為第二份代碼的結(jié)果應(yīng)和第一份代碼中的一致。而通過(guò)反面思考,假設(shè)這個(gè)函數(shù)使用一次后便是一直有效的,那么每次生成的隨即數(shù)都會(huì)相同,但是這樣豈不是會(huì)影響到后續(xù)的代碼中隨機(jī)數(shù)的選?。?/p>
所以,以后學(xué)新的東西的時(shí)候,都要問(wèn)自己傻問(wèn)題,不斷地去測(cè)試自己的想法以達(dá)到更深的理解。
故對(duì)于該函數(shù)的使用,可總結(jié)為:
seed( ) 用于指定隨機(jī)數(shù)生成時(shí)所用算法開(kāi)始的整數(shù)值。
1.如果使用相同的seed( )值,則每次生成的隨即數(shù)都相同;
2.如果不設(shè)置這個(gè)值,則系統(tǒng)根據(jù)時(shí)間來(lái)自己選擇這個(gè)值,此時(shí)每次生成的隨機(jī)數(shù)因時(shí)間差異而不同。
3.設(shè)置的seed()值僅一次有效
總結(jié)
以上就是本文關(guān)于numpy.random.seed()的使用實(shí)例解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
使用Python和XML實(shí)現(xiàn)文件復(fù)制工具的完整代碼
在本篇博客中,我們將學(xué)習(xí)如何使用 wxPython 構(gòu)建一個(gè)簡(jiǎn)單的文件復(fù)制工具,并將文件路徑和目標(biāo)目錄的配置信息保存到 XML 文件中,通過(guò)這種方式,我們可以在下次運(yùn)行程序時(shí)輕松加載之前保存的配置,需要的朋友可以參考下2024-08-08python將MongoDB里的ObjectId轉(zhuǎn)換為時(shí)間戳的方法
這篇文章主要介紹了python將MongoDB里的ObjectId轉(zhuǎn)換為時(shí)間戳的方法,涉及Python操作MongoDB及字符串轉(zhuǎn)換的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03使用Python獲取當(dāng)前工作目錄和執(zhí)行命令的位置
這篇文章主要介紹了使用Python獲取當(dāng)前工作目錄和執(zhí)行命令的位置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03TensorFlow2.0使用keras訓(xùn)練模型的實(shí)現(xiàn)
這篇文章主要介紹了TensorFlow2.0使用keras訓(xùn)練模型的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02基于Python實(shí)現(xiàn)自動(dòng)化生成數(shù)據(jù)報(bào)表
這篇文章主要介紹了如何使用Python自動(dòng)化生成數(shù)據(jù)報(bào)表,從而提高效率,再也不用一條條數(shù)據(jù)創(chuàng)建Excel數(shù)據(jù)報(bào)表了,感興趣的同學(xué)可以試一試2022-01-01Python的Pandas庫(kù)中使用DataFrame篩選和刪除含特定值的行與列
Pandas是一個(gè)強(qiáng)大的數(shù)據(jù)處理庫(kù),提供了各種功能來(lái)操作和處理數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于Python的Pandas庫(kù)中使用DataFrame篩選和刪除含特定值的行與列的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05