random裡面常用的一些隨機數函式
下面的**是pyhon3.6 numpyt1.16.0
import numpy as np
np.random.
seed
(666)1.
rand
(d0, d1, d2,..
.,dn) 這個函式返回的資料在[0,
1)之間,具有均勻分布的特點
rand等價於uniform
([low, high ,size]
)這個函式 也就是low=
0,high=
1時 裡面的引數代表的是 生成array的dim(維度)
x = np.random.
rand(3
)y = np.random.
uniform(0
,1,3
)x,y
output:
(array([
0.70043712
,0.84418664
,0.67651434])
,array([
0.72785806
,0.95145796
,0.0127032])
)x = np.random.
rand(2
,3)y = np.random.
uniform(0
,1,(
2,3)
)x,y
output:
(array([
[0.192892
,0.70084475
,0.29322811],
[0.77447945
,0.00510884
,0.11285765]]
),array([
[0.11095367
,0.24766823
,0.0232363],
[0.72732115
,0.34003494
,0.19750316]]
)2.randn
(d0, d1, d2,..
., dn)
這個函式返回的資料 具有 標準正態分佈的特點,也就是均值為0,方差為1
randn等價於 normal
([loc, scale, size]
) 這個函式, 也就是loc=
0, scale=
1時x = np.random.
randn(3
)y = np.random.
normal(0
,1,3
)x,y
output:
(array([
-0.18842439,-
0.04148929,-
0.98479191])
,array([
-1.35228176
,0.19432385
,0.26723935])
)x = np.random.
randn(2
,3)y = np.random.
normal(0
,1,(
2,3)
)x,y
output:
(array([
[-0.4264737
,1.44773506,-
0.1963061],
[1.51814514
,0.07722188,-
0.06399132]]
),array([
[0.94592341
,1.20409101,-
0.45124074],
[-1.58744651,-
1.86885548
,0.10037737]]
))3.randint
([low, high, size, dtype]
)這個函式生成的是隨機整數 從low開始 不包含high
如果只傳入乙個引數t 那就生成從0到t的隨機整數
size代表的是生成資料的shape 下面是例子
np.random.
randint(1
,10,size=
5)#size=
5 就生成了有五個資料的一維向量
output:
array([
1,5,
7,8,
9])np.random.
randint(1
,10,size =(2
,3))#size=(2
,3) 就生成了乙個 2行3列 的二維陣列
output:
array([
[3,9
,2],
[1,9
,3]]
)4.random
(size) 這個函式可以生成[
0.0,
1.0)之間的隨機數
np.random.
random(5
)output:
array([
0.03643288
,0.72687158
,0.00390984
,0.050294
,0.99199232])
np.random.
random((
2,3)
)output:
array([
[0.2122575
,0.94737066
,0.45154055],
[0.99879467
,0.64750149
,0.70224071]]
)5.choice[a, size] 這個函式意思是從a中隨機選取陣列
其中a可以是個數字 也可以是個陣列
#當引數a為數字時 相當於先執行了一下 x = np.arange[a] 然後再從x裡面 隨機挑選數字
np.random.
choice(5
,2)#上面的式子就 等價於 下面兩個式子
#x = np.arange(5)
#np.random.choice(x, 2)
output:
array([
2,1]
)#當引數為陣列時 下面這個例子 就相當於選出2行3列 其中每個元素 都來自於這個陣列的隨機值
np.random.
choice([
1,2,
3,4,
5], size=(2
,3))
output:
array([
[5,4
,4],
[2,4
,3]]
)6.shuffle
(x)
這個函式用於將陣列x隨機排列
x = np.
arange(5
)np.random.
shuffle
(x)x
output:
array([
4,0,
3,1,
2])#如果陣列是多維的 2維為例子
#那麼 這個函式 只會在第一維度進行打散 也就是行 打亂順序, 每一行裡面的元素 並不會打散
x= np.
arange(10
).reshape(2
,5)np.random.
shuffle
(x)x
output:
array([
[5,6
,7,8
,9],
[0,1
,2,3
,4]]
)7.permutation
(x)這個函式跟shuffle類似,也是用於打散陣列
於shuffle不同的是 這個函式不會改變原來的陣列 而會重新生成乙個array
#以二維陣列為例子
x = np.
arange(12
).reshape(3
,4)y = np.random.
permutation
(x)x,y
output:
(array([
[0,1
,2,3
],[4
,5,6
,7],
[8,9
,10,11
]]),
array([
[4,5
,6,7
],[8
,9,10
,11],
[0,1
,2,3
]]))
具體參考連線: numpy中array和asarray的區別
array和asarray都可以將結構資料轉化為ndarray,但是主要區別就是當資料來源是ndarray時,array仍然會copy出乙個副本,占用新的記憶體,但asarray不會。例子1 import numpy as np example 1 data1 1,1,1 1,1,1 1,1,1 a...
numpy中的array與matrix的區別
numpy.mat和numpy.matrix的區別 型別特點 ndarray 可以為多維 1d,2d,3d nd matrices 必須為2維 matrix是array的乙個小的分支,包含於array。所以matrix擁有array的所有特性。雖說matrix僅僅是array的乙個小分支,但是他也是...
論numpy中matrix 和 array的區別
論numpy中matrix 和 array的區別 csdn部落格 2014年03月07日 16 26 55 numpy matrices必須是2維的,但是 numpy arrays ndarrays 可以是多維的 1d,2d,3d nd matrix是array的乙個小的分支,包含於array。所以...