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ù)返回一個(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è)問題進(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()對后面的隨機(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é)果是一樣的。說明,
隨機(jī)數(shù)種子對后面的結(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é)果相同。說明該參數(shù)指定了一個(gè)隨機(jī)數(shù)生成的起始位置。每個(gè)參數(shù)對應(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())#沒有設(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)容請搜索腳本之家以前的文章或繼續(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中生成隨機(jī)數(shù)據(jù)的示例詳解
在日常工作編程中存在著各種隨機(jī)事件,同樣在編程中生成隨機(jī)數(shù)字的時(shí)候也是一樣。每當(dāng)在?Python?中生成隨機(jī)數(shù)據(jù)、字符串或數(shù)字時(shí),最好至少大致了解這些數(shù)據(jù)是如何生成的。所以本文將詳細(xì)為大家講解一下Python是如何生成隨機(jī)數(shù)據(jù),需要的可以參考一下2022-04-04
利用python實(shí)現(xiàn)在微信群刷屏的方法
今天小編就為大家分享一篇利用python實(shí)現(xiàn)在微信群刷屏的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02
將圖片文件嵌入到wxpython代碼中的實(shí)現(xiàn)方法
前面一篇文章中提到的那個(gè)程序,GUI中包含了一張圖片。在編譯成exe文件發(fā)布時(shí),無法直接生成一個(gè)單獨(dú)的exe文件。因此需要直接把圖片寫入到代碼中2014-08-08
Python的Django框架中的數(shù)據(jù)庫配置指南
這篇文章主要介紹了Python的Django框架中的數(shù)據(jù)庫配置指南,文中舉了Python內(nèi)置的SQLite的示例,需要的朋友可以參考下2015-07-07
YOLOv5車牌識別實(shí)戰(zhàn)教程(六)性能優(yōu)化與部署
這篇文章主要介紹了YOLOv5車牌識別實(shí)戰(zhàn)教程(六)性能優(yōu)化與部署,在這個(gè)教程中,我們將一步步教你如何使用YOLOv5進(jìn)行車牌識別,幫助你快速掌握YOLOv5車牌識別技能,需要的朋友可以參考下2023-04-04
python通過tcp發(fā)送xml報(bào)文的方法
今天小編就為大家分享一篇python通過tcp發(fā)送xml報(bào)文的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12

