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...