日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

np.random.seed()随机数种子

發(fā)布時(shí)間:2023/12/20 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 np.random.seed()随机数种子 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

np.random.seed()隨機(jī)數(shù)種子

  • np.random.seed()隨機(jī)數(shù)種子
    • 1.隨機(jī)數(shù)種子的理解
    • 2.np.random.seed()的參數(shù)

np.random.seed()隨機(jī)數(shù)種子

隨機(jī)數(shù)種子!以下均為個(gè)人理解,有誤及時(shí)修改
在生成隨機(jī)數(shù)時(shí),我們可以利用隨機(jī)數(shù)種子,控制生成的隨機(jī)數(shù)。什么意思,就是說我可以利用隨機(jī)數(shù)種子,得到相同的或部分形同的隨機(jī)數(shù)。

1.隨機(jī)數(shù)種子的理解

隨機(jī)數(shù)種子,相當(dāng)于我給接下來需要生成的隨機(jī)數(shù)一個(gè)初值,按照我給的這個(gè)初值,按固定順序生成隨機(jī)數(shù)。
個(gè)人覺得通俗理解: 隨機(jī)數(shù)種子是給了一批數(shù)(隨機(jī)數(shù)種子應(yīng)該是按一定順序生成隨機(jī)數(shù)的,并不是一次給了一批數(shù),但如果這些數(shù)有固定順序,我們是不是可以簡單認(rèn)為隨機(jī)種子給了我們很多數(shù)據(jù)),當(dāng)需要生成隨機(jī)數(shù)時(shí),就從這一批數(shù)中依次取值。

看例子吧:
(1)

np.random.seed(0) # 先定義一個(gè)隨機(jī)數(shù)種子,()中的參數(shù)值后下個(gè)小節(jié)說 print(np.random.rand(5)) # "隨機(jī)"生成5個(gè)數(shù) print(np.random.rand(5)) # 再"隨機(jī)"生成5個(gè)數(shù)np.random.seed(0) for i in range(7):print(np.random.random()) # "隨機(jī)"生成7個(gè)數(shù)

在代碼中,我們看到 “ 隨機(jī) ” ,那就是說并不是真正隨機(jī)(假隨機(jī)),觀察結(jié)果就知道了!

# 結(jié)果 [0.5488135 0.71518937 0.60276338 0.54488318 0.4236548 ] [0.64589411 0.43758721 0.891773 0.96366276 0.38344152]0.5488135039273248 0.7151893663724195 0.6027633760716439 0.5448831829968969 0.4236547993389047 0.6458941130666561 0.4375872112626925

觀察結(jié)果:下邊的 ‘ 隨機(jī) ’ 生成的7個(gè)數(shù)和上邊 ‘ 隨機(jī) ’ 生成的十個(gè)數(shù)中的前7個(gè)相同。
為什么呢?
因?yàn)殚_始我們設(shè)置了一個(gè)隨機(jī)種子,接下來生成的十個(gè)數(shù)是有固定順序的(這順序是什么?i dont know!)。為了方便理解,我們把隨機(jī)種子看成一個(gè)超級(jí)超級(jí)長的 list ,我們接下來的取隨機(jī)數(shù)操作,( np.random.rand(5) )就是從這個(gè) list 中依次取5個(gè)隨機(jī)數(shù),然后( np.random.rand(5) )再取5個(gè)隨機(jī)數(shù)。當(dāng)然,你說它不是 list 是 數(shù)組 ,OK!隨你,只是為了方便理解。
為什么后邊生成的7個(gè) “隨機(jī)” 數(shù)和之前的前7個(gè)數(shù)相同呢?
這是因?yàn)樵谏蛇@7個(gè) ‘隨機(jī)’ 數(shù)之前,又重新定義了一個(gè)隨機(jī)數(shù)種子 ( np.random.seed(0) )。定義隨機(jī)數(shù)種子,不就是定義了一個(gè)超級(jí)超級(jí)長的 list 嗎 ?,這個(gè) list 和之前的 list 是一樣的!!!,所以我們?nèi)?個(gè) ‘隨機(jī)’ 數(shù),不就是這個(gè) list 中的前7個(gè)嗎!

(2)再來看一個(gè)例子

np.random.seed(0) for i in range(7):print(np.random.random())np.random.seed(0) print(np.random.rand(2, 3))

放結(jié)果,觀察

0.5488135039273248 0.7151893663724195 0.6027633760716439 0.5448831829968969 0.4236547993389047 0.6458941130666561 0.4375872112626925[[0.5488135 0.71518937 0.60276338][0.54488318 0.4236548 0.64589411]]

2x3矩陣的6個(gè)數(shù) 和 隨機(jī)生成的前6個(gè)數(shù)相同!不需要解釋了吧,所以如果我想生成兩個(gè)一樣的隨機(jī)矩陣怎么辦?是不是在生成矩陣前,定義隨機(jī)數(shù)種子就好了

總結(jié):
(1)隨機(jī)數(shù)種子相當(dāng)于給我們一個(gè)初值,之后按照固定順序生成隨機(jī)數(shù)(也就是我們說的超級(jí)長的 list )
(2)隨機(jī)數(shù)種子對(duì)后面的結(jié)果一直有影響,在一個(gè)隨機(jī)數(shù)種子后生成的隨機(jī)數(shù)都受這個(gè)隨機(jī)數(shù)種子的影響,即生成的隨機(jī)數(shù)都是由這個(gè)隨機(jī)數(shù)種子給的初值,按照固定順序生成的(生成的隨機(jī)數(shù)受離它最近的隨機(jī)數(shù)種子影響,即它之前的隨機(jī)數(shù)種子)。
那么問題來了,隨機(jī)數(shù)種子的初值和順序由啥決定呢?下一小節(jié)!

2.np.random.seed()的參數(shù)

個(gè)人理解:隨機(jī)數(shù)種子給的初值和順序是一個(gè)意思,因?yàn)檫@個(gè)順序并不知道,所以可以認(rèn)為是由初值決定,也可以理解為生成的超級(jí)超級(jí)大的 list 。
那這個(gè)初值是怎么決定的呢,是np.random.seed()中的參數(shù)決定,只要每次這個(gè)參數(shù)相同,那我們的初值就是相同的,種子就是相同的
種子相同,之后長得枝條就是相同的: 即 list 是相同的。
(1)是第一小節(jié)的例子,np.random.seed(0) ,參數(shù)都是 0 。

np.random.seed(0) for i in range(7):print(np.random.random())np.random.seed(0) print(np.random.rand(2, 3)) 0.5488135039273248 0.7151893663724195 0.6027633760716439 0.5448831829968969 0.4236547993389047 0.6458941130666561 0.4375872112626925[[0.5488135 0.71518937 0.60276338][0.54488318 0.4236548 0.64589411]]

(2)

np.random.seed(0) print(np.random.rand(2, 3))np.random.seed(1) print(np.random.rand(2, 3))np.random.seed(0) print(np.random.rand(2, 3))

結(jié)果:這個(gè)例子也證實(shí)了上一小節(jié)的總結(jié)(2)

[[0.5488135 0.71518937 0.60276338][0.54488318 0.4236548 0.64589411]][[4.17022005e-01 7.20324493e-01 1.14374817e-04][3.02332573e-01 1.46755891e-01 9.23385948e-02]][[0.5488135 0.71518937 0.60276338][0.54488318 0.4236548 0.64589411]]

最后!!!,這個(gè)參數(shù)好像是隨便取的,可以認(rèn)為是初值的標(biāo)志,每次按照這個(gè)標(biāo)志都可以得到相同的初值。但是這個(gè)參數(shù)好像必須是int類型吧。

總結(jié)

以上是生活随笔為你收集整理的np.random.seed()随机数种子的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。