Python?numpy中np.random.seed()的詳細用法實例
引言
在進行機器學(xué)習(xí)和深度學(xué)習(xí)中,我們會經(jīng)常用到np.random.seed(),利用隨機數(shù)種子,使得每次生成的隨機數(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)

我們將帶著兩個問題進行np.random.seed()的學(xué)習(xí):
1.np.random.seed()是否一直有效?
2.np.random.seed(Argument)的參數(shù)作用?
E.G.實驗
# -*- 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運行截圖:

可以看出,np.random.seed()對后面的隨機數(shù)一直有效。
兩次利用random.seed()后,即使跳出循環(huán)以后,生成隨機數(shù)的結(jié)果依然相同。第一次跳出while循環(huán)后,進入第二次while循環(huán),
得到的兩個隨機數(shù)組確實和加了隨機數(shù)種子不一樣。但是后面的加入隨機數(shù)種子的,八次循環(huán)中的結(jié)果和前面的結(jié)果是一樣的。說明,
隨機數(shù)種子對后面的結(jié)果一直有影響。同時,加入隨機數(shù)種子以后,后面的數(shù)組都是按一定的順序生成的。
E.G.隨機數(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運行截圖:

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

總結(jié)
到此這篇關(guān)于Python numpy中np.random.seed()詳細用法的文章就介紹到這了,更多相關(guān)numpy.random.seed()的用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
將圖片文件嵌入到wxpython代碼中的實現(xiàn)方法
前面一篇文章中提到的那個程序,GUI中包含了一張圖片。在編譯成exe文件發(fā)布時,無法直接生成一個單獨的exe文件。因此需要直接把圖片寫入到代碼中2014-08-08
Python的Django框架中的數(shù)據(jù)庫配置指南
這篇文章主要介紹了Python的Django框架中的數(shù)據(jù)庫配置指南,文中舉了Python內(nèi)置的SQLite的示例,需要的朋友可以參考下2015-07-07
YOLOv5車牌識別實戰(zhàn)教程(六)性能優(yōu)化與部署
這篇文章主要介紹了YOLOv5車牌識別實戰(zhàn)教程(六)性能優(yōu)化與部署,在這個教程中,我們將一步步教你如何使用YOLOv5進行車牌識別,幫助你快速掌握YOLOv5車牌識別技能,需要的朋友可以參考下2023-04-04

