隨機數(shù)random()生成數(shù)組
隨機數(shù)
#size=5指定生成5個隨機數(shù)不同,并組成一個ndarray數(shù)組
a=np.random.random(size=5)
print(a)
print(type(a))
結(jié)果:
[0.32841335 0.08853397 0.7719518 0.11669795 0.59754706]
<class 'numpy.ndarray'>
#如果不加參數(shù)size,生成的是一個返回[0.0, 1.0)范圍的隨機數(shù)
a=np.random.random()
print(a)
print(type(a))
結(jié)果:
0.6408131344970486
<class 'float'>
#size=(2,3)創(chuàng)建二維數(shù)組
a=np.random.random(size=(2,3))
print(a)
print(type(a))
結(jié)果:{size=(2,3)指創(chuàng)建2行3列的二維數(shù)組}
[[0.91208731 0.96776949 0.51610337]
[0.26176896 0.31994015 0.14627309]]
<class 'numpy.ndarray'>
#size=(2,3,3)創(chuàng)建三維數(shù)組
a=np.random.random(size=(2,3,3))
print(a)
print(type(a))
結(jié)果:{size=(2,3,3)指創(chuàng)建2個3行柑潦,3列的三維數(shù)組}
[[[0.72229578 0.66648356 0.40343016]
[0.0765574 0.30903895 0.19439705]
[0.39041189 0.13883567 0.05646996]]
[[0.07147462 0.15570994 0.08275303]
[0.50599719 0.05621077 0.95416318]
[0.9497459 0.06390999 0.13081354]]]
<class 'numpy.ndarray'>
x=np.random.rand(10)
print(x)
#結(jié)果:生成10個[0,1)的隨機數(shù)
np.random.rand()和np.random.random()的區(qū)別:
相同點:兩個函數(shù)都是在 [0, 1) 的均勻分布中產(chǎn)生隨機數(shù)逞带。
不同點:參數(shù)傳遞不同偿曙。random.random( )接收一個單獨的元組匆光,而random.rand( )接收分開的參數(shù)
例如:
要生成3行5列的數(shù)組,你可以
np.random.rand(3, 5)
或者
np.random.random((3, 5))
兩個函數(shù)功能完全一樣法精,numpy為什么這么做刚照,這是有歷史原因的∩埽可能是為了使 Matlab 用戶更容易學習 python+numpy 的組合俄烁。把其中一個函數(shù)去掉,所帶來的麻煩遠大于好處级野,因為有很多現(xiàn)存的代碼使用了函數(shù)的不同版本页屠。
隨機整數(shù)randint()生成數(shù)組
numpy.random.randint(low、high蓖柔、size)
默認high是None,
如果只有l(wèi)ow辰企,那范圍就是[0,low),
如果有high,范圍就是[low,high)况鸣。
size表示生成的維度
#生成[0,5)之間的隨機整數(shù)牢贸,size=10表示一維數(shù)組,元素個數(shù)10個
a=np.random.randint(5,size=10)
print(a)
print(type(a))
結(jié)果:
[1 2 3 3 2 1 3 0 0 2]
<class 'numpy.ndarray'>
#生成[5,10)之間的隨機整數(shù)镐捧,size=10表示一維數(shù)組潜索,元素個數(shù)10個
a=np.random.randint(5,10,size=10)
print(a)
print(type(a))
結(jié)果:
[5 8 7 5 5 8 8 7 6 5]
<class 'numpy.ndarray'>
#生成[5,10)之間的隨機整數(shù),size=(2,3)表示二維數(shù)組2行3列
a=np.random.randint(5,10,size=(2,3))
print(a)
print(type(a))
結(jié)果:
[[9 8 7]
[6 6 9]]
<class 'numpy.ndarray'>
#生成[5,10)之間的隨機整數(shù)懂酱,size=(2,4,3)表示三維數(shù)組2個4行3列
a=np.random.randint(5,10,size=(2,4,3))
print(a)
print(type(a))
結(jié)果:
[[[9 7 7]
[7 9 5]
[5 9 8]
[7 5 5]]
[[8 5 6]
[9 7 6]
[8 5 9]
[5 7 6]]]
<class 'numpy.ndarray'>
隨機方差分布數(shù)組randn()
numpy.random.randn(d0,d1,…,dn)
randn函數(shù)返回一個或一組樣本竹习,具有標準正態(tài)分布(期望為 0,方差為 1)列牺。
dn表格每個維度 返回值為指定維度的array
#創(chuàng)建一維數(shù)組(值為正太分布)
a=np.random.randn(4)
print(a)
結(jié)果:{創(chuàng)建一維數(shù)組值為正太分布整陌,且4個值}
[ 0.50791716 0.20654164 0.91392296 -0.37149023]
#創(chuàng)建二維數(shù)組(值為正太分布),2行3列的正太分布值
a=np.random.randn(2,3)
print(a)
結(jié)果:
[[ 0.50226148 -1.04057313 -1.05297484]
[-0.6812766 1.31848462 0.41707931]]
#創(chuàng)建三維數(shù)組(值為正太分布),2個3行4列的正太分布值
a=np.random.randn(2,3,4)
print(a)
結(jié)果:
[[[-2.07525002 -1.32988885 -0.76469953 -0.36114198]
[-0.07949898 -1.77600837 1.14122804 -0.05158659]
[ 1.02895248 1.33876595 -0.47272402 -0.15221185]]
[[-0.23338729 0.08311554 -1.09068697 -0.7200072 ]
[ 1.39105961 0.7763497 -0.33694818 0.80777491]
[-0.7675833 0.36297381 -1.18767124 0.70628512]]]
隨機方差分布數(shù)組且指定方差normal()
np.random.normal(loc=,scale=,size=)指定期望和方差的正太分布
loc: 期望
scale:方差
size: 形狀
#默認的normal()函數(shù)創(chuàng)建的是:loc=0.0,scale=1.0的整改分布
a=np.random.normal(size=4)
print(a)
結(jié)果:
[ 0.48020042 -1.47781036 1.514757 0.02959261]
#normal()指定loc,scale創(chuàng)建正太分布泌辫,一維數(shù)組
a=np.random.normal(loc=2,scale=4,size=4)
print(a)
結(jié)果:
[-0.62843317 -2.46408167 0.46803852 7.15364569]
#normal()指定loc,scale創(chuàng)建正太分布,二維數(shù)組2行3列
a=np.random.normal(loc=2,scale=4,size=(2,3))
print(a)
結(jié)果:
[[-4.65621806 2.9411795 2.97672568]
[ 6.28013303 7.97898493 -5.14406465]]
#normal()指定loc,scale創(chuàng)建正太分布,三維數(shù)組2個3行4列
a=np.random.normal(loc=2,scale=4,size=(2,3,4))
print(a)
結(jié)果:
[[[ 6.0520187 7.41956974 6.49261014 -1.21725059]
[ 9.36195212 -1.74690398 1.19951566 -0.71623426]
[-1.12240751 4.61490294 1.98981814 -0.21171062]]
[[ 2.30209515 2.54750312 7.56650075 -3.49782812]
[ 0.72864675 -3.58500149 3.49167301 3.02638296]
[-1.49637658 -0.2453314 3.16000657 -0.11082087]]]