numpy.random.randn()與rand()的區別:
- numpy.random.randn(d0, d1, …, dn)是從標准正態分布中返回一個或多個樣本值。
- numpy.random.rand(d0, d1, …, dn)的隨機樣本位於[0, 1)中:本函數可以返回一個或一組服從“0~1”均勻分布的隨機樣本值。
1. np.random.rand()函數
注:np.random.rand使用方法與np.random.randn()函數相同,見下面的randn()函數。
均勻分布:
也叫矩形分布,它是對稱概率分布,在相同長度間隔的分布概率是等可能的。
均勻分布由兩個參數a和b定義,它們是數軸上的最小值和最大值,通常縮寫為U(a,b)。
均勻分布的概率密度函數為:
2. np.random.randn() :返回數,返回1行n列的矩陣,返回d0*d1,d2*d3
np.random.randn(d0,d1,d2……dn)
-
1.當函數括號內沒有參數時,則返回一個浮點數;
-
2.當函數括號內有一個參數時,則返回秩為1的數組,不能表示向量和矩陣;
np.random.rand(n):生成n個數字:服從均勻分布
import numpy as np n=100 numbers=np.random.rand(n) print(numbers) print(numbers[0])
生成結果:
[0.38168677 0.59407726 0.35176551 0.06454376 0.83568464 0.69637982 0.24368057 0.19585352 0.65597577 0.34974667 0.12226723 0.09980699 0.28026482 0.36982289 0.98451365 0.67577312 0.3396587 0.83913777 0.19975695 0.48266711 0.06253195 0.03442195 0.26711649 0.59684131 0.32449135 0.201035 0.10583951 0.22929671 0.36369577 0.79181915 0.37036303 0.23298382 0.38424825 0.60184844 0.20676976 0.16115611 0.68320131 0.39269848 0.14410751 0.24837102 0.17024295 0.83205654 0.13939348 0.20668946 0.30256059 0.00508079 0.25822745 0.98956192 0.28415732 0.46733642 0.98349761 0.60101909 0.89957235 0.49399372 0.66874855 0.71217971 0.4240244 0.15444761 0.56674883 0.33054616 0.3354706 0.02875843 0.24177997 0.21024322 0.71773817 0.17882851 0.44207474 0.11530786 0.35135403 0.760504 0.64180164 0.0205157 0.46417601 0.99069724 0.49334422 0.49878908 0.14926022 0.55568238 0.0986128 0.36320792 0.63561554 0.52765909 0.58487077 0.05659434 0.13670034 0.81223304 0.73038064 0.54155066 0.0498481 0.5281924 0.79728807 0.5819477 0.57417879 0.06890877 0.36662187 0.88355421 0.89484216 0.01090776 0.58829253 0.47415749] 0.3816867739686278 Process finished with exit code 0
-
3.當函數括號內有兩個及以上參數時,則返回對應維度的數組,能表示向量或矩陣。np.random.rand(行,列)
-
4.np.random.standard_normal()函數與np.random.randn()類似,但是np.random.standard_normal()的輸入參數為元組(tuple).
建議試試,結果有利於理解多維數組:
np.random.standard_normal((5)) np.random.standard_normal((5,2)) np.random.standard_normal((5,2,3)) np.random.standard_normal((5,2,3,1))
-
np.random.randn()的輸入通常為整數,但是如果為浮點數,則會自動直接截斷轉換為整數。