Numpy快速入門 隨機數random模組指南

2021-10-04 20:37:56 字數 4284 閱讀 1904

numpy(numerical python)是高效能科學計算和資料分析的基礎包,內建的random模組用於生成隨機數,下面介紹常用的隨機數函式:

1、np.random.seed(argument)

作用:如果使用相同的argument值,則每次生成的隨即數都相同。

如果不設定這個值,則系統根據時間來自己選擇這個值,此時每次生成的隨機數因時間差異而不同。

np.random.seed(

1)

2、np.random.randomstate(argument)

作用:和np.random.seed()同樣的作用,是乙個偽隨機數生成器。

但是np.random.seed()不是執行緒安全的,如果程式中有多個執行緒最好使用np.random.randomstate()例項物件來建立或者使用np.random.seed()來設定相同的隨機數種子。

>>

>randomstate = np.random.randomstate(3)

>>

>randomstate.random((2

,3))

array([[

0.5507979

,0.70814782

,0.29090474],

[0.51082761

,0.89294695

,0.89629309]]

)

1、np.random.uniform(low=0.0, high=1.0, size=none)

作用:生成[low, high)區間指定形狀的符合均勻分布的隨機浮點數,預設取值範圍為[0, 1.0)。

>>

>np.random.uniform(

)0.9401074823333672

>>

>np.random.uniform(3,

5,size=(2

,3))

array([[

4.59720718

,3.5714377

,3.98050705],

[4.19822062

,3.03106655

,4.18696282]]

)

2、np.random.random(size=none)

作用:生成[0,1)區間指定形狀的符合均勻分布的隨機浮點數。

>>

>np.random.random(

)0.5741176054920131

>>

>np.random.random(3)

array(

[0.57411761

,0.14672857

,0.58930554])

>>

>np.random.random((2

,3))

array([[

0.57411761

,0.14672857

,0.58930554],

[0.69975836

,0.10233443

,0.41405599]]

)

3、np.random.rand(d0, d1, …, dn)

作用:生成[0,1)區間指定形狀的符合均勻分布的隨機浮點數。

與random()函式的相同點:兩個函式都是在 [0, 1) 的均勻分布中產生隨機數。

不同點:引數傳遞不同。np.random.random( )接收乙個單獨的元組,而np.random.rand( )接收分開的引數。兩個函式功能完全一樣,由於歷史等原因被保留下來。

1、np.random.normal(loc=0.0, scale=1.0, size=none)

作用:生成指定形狀,服從標準正態分佈(均值為loc,標準差為scale)的隨機浮點數。

>>

>np.random.normal(1,

2,4)

array(

[0.56516365

,1.31702977

,2.74683647

,0.77723326])

>>

>np.random.normal(1,

2,(2

,3))

array([[

-1.07607753,-

1.01895965,-

1.11651312],

[2.31256816

,0.87501681,-

2.47730859]]

)

2、np.random.randn(size=none)

作用:生成指定形狀,服從標準正態分佈(均值為0,標準差為1)的隨機浮點數。

>>

>np.random.randn(4)

array(

[2.04202875

,0.44752069

,0.68338423

,0.02288597])

>>

>np.random.randn(2,

3)array([[

0.39128265

,2.21191487,-

0.16224463],

[0.29117816

,0.10806266,-

0.19953292]]

)

1、np.random.randint(low, high=none, size=none, dtype=『l』)

作用:生成指定區間[low, high)的隨機整數,沒有輸入引數high則取值區間為[0, low)。

>>

>np.random.randint(

8, dtype=

'int64')2

>>

>np.random.randint(

8, size=(2

,3))

array([[

0,5,

3],[

1,2,

7]])

1、np.random.permutation(x)

作用:隨機打亂資料序列。若x是整數,則打亂np.arange(x),若x是乙個陣列,則將np.copy(x)的第一位索引打亂,意思是先複製x,對副本進行打亂處理,打亂只針對陣列的第一維。

>>

>np.random.permutation(5)

array([2

,0,4

,3,1

])>>

>np.random.permutation([[

1,2,

3],[

4,5,

6],[

7,8,

9]])

array([[

4,5,

6],[

7,8,

9],[

1,2,

3]])

2、numpy.random.shuffle(x)

作用:與permutation()類似,隨機打亂x中的元素。若x是整數,則打亂np.arange(x),但是shuffle會對x進行修改。

3、np.random.choice(a, size=none, replace=true, p=none)

作用:從a(陣列)中選取size大小的隨機數,replace=true表示可重複抽取,p是a中每個數出現的概率。若a是整數,則a代表的陣列是np.arange(a)。

>>

>np.random.choice(5)

3>>

>np.random.choice(5,

5)array([2

,1,0

,3,1

])>>

>random.choice(

[0.2

,0.4

], p=[1

,0])

0.2>>

>np.random.choice(10,

(2,3

),false

)array([[

5,7,

2],[

6,8,

1]])

C語言ran 偽隨機數破解

rand 破解 首先我們知道的是隨機數發生器是 xn a xn 1 c m 那麼隨機數是怎麼輸出的呢?首先這種隨機方式的前16位的隨機效果好,然後講它mod 32768,為什麼是32768應為rand的取值範圍就是0 32767,你可以隨機1000w個隨機數試試取最大值看是不是32768。那麼這裡就...

NumPy隨機數函式

import numpy as np a np.random rand 3,4,5 每個元素為0 1之間的浮點數 sn np.random randn 3,4,5 每個元素是根據n 0,1 的方式選取出來的浮點數 b np.random randint 100,200,3,4 每個元素為100 20...

numpy生成隨機數

這裡只列出重要的幾個函式 使用numpy.random.randint low,high none,size none,dtype i 範圍為 low,high 不包括high這個值。生成的是離散的均勻分布 discrete uniform distribution 使用numpy.random.r...