Numpy中array的基本操作(4)

2021-10-04 17:04:27 字數 4248 閱讀 5636

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。所以...