# np.random.seed() 理解

1.利用隨機數種子，每次生成的隨機數相同，如何理解？

2.隨機數種子的參數怎麼選擇？經常看到np.random.seed(Argument)，這個參數不一樣，有的是0，有的是1，當然還有其他數，那麼如何選擇參數呢？

``````import numpy as np

if __name__ == '__main__':
i = 0
while(i < 6):
if(i < 3):
# np.random.seed(0)
print(np.random.randn(1,5))
else:
np.random.seed(0)
print(np.random.randn(1,5))
pass
i += 1

print('\n--------------------------------------------------------------------------\n')

i = 0
while(i < 2):
print(np.random.randn(1,5))
i += 1

print('\n****************************************************************************\n')

print(np.random.randn(2,5))

print('\n############################################################################\n')

np.random.seed(0)
i = 0
while(i < 8):
print(np.random.randn(1,5))
i += 1

'''

[[-1.76621289 -1.05873992 -0.66419152 -0.01032896 -1.45679443]]
[[ 0.72057899 -0.25160152 -0.69906354 -1.27840913  0.9767471 ]]
[[-0.39028757  0.40151722 -1.42781399  0.55213104  0.91395741]]
[[1.76405235 0.40015721 0.97873798 2.2408932  1.86755799]]
[[1.76405235 0.40015721 0.97873798 2.2408932  1.86755799]]
[[1.76405235 0.40015721 0.97873798 2.2408932  1.86755799]]

--------------------------------------------------------------------------

[[-0.97727788  0.95008842 -0.15135721 -0.10321885  0.4105985 ]]
[[0.14404357 1.45427351 0.76103773 0.12167502 0.44386323]]

****************************************************************************

[[ 0.33367433  1.49407907 -0.20515826  0.3130677  -0.85409574]
[-2.55298982  0.6536186   0.8644362  -0.74216502  2.26975462]]

############################################################################

[[1.76405235 0.40015721 0.97873798 2.2408932  1.86755799]]
[[-0.97727788  0.95008842 -0.15135721 -0.10321885  0.4105985 ]]
[[0.14404357 1.45427351 0.76103773 0.12167502 0.44386323]]
[[ 0.33367433  1.49407907 -0.20515826  0.3130677  -0.85409574]]
[[-2.55298982  0.6536186   0.8644362  -0.74216502  2.26975462]]
[[-1.45436567  0.04575852 -0.18718385  1.53277921  1.46935877]]
[[ 0.15494743  0.37816252 -0.88778575 -1.98079647 -0.34791215]]
[[ 0.15634897  1.23029068  1.20237985 -0.38732682 -0.30230275]]
'''

'''

1.對技術種子隊後面的結果一直有影響。同時，加了隨機數種子以後，後面的隨機數組都是按一定順序生成的。
2.輸出結果中，print(np.random.randn(2,5))的輸出結果和最後一個while循環中兩個一行烏列的數組結果相同，
說明，在生成多行隨機數組時，是由單行隨機數組組合而成的。

--就是使後面的隨機數按照一定得順序生成。
'''``````
``````import numpy as np

if __name__ == '__main__':
i = 0
np.random.seed(0)
while(i < 3):
print(np.random.randn(1,5))
i += 1

i = 0
while(i < 2):
print(np.random.randn(1,5))
i += 1

print("\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n")

i = 0
np.random.seed(1) #如果改爲np.random.seed(0)的話，結果將於上面兩個while循環一樣。
while(i < 5):
print(np.random.randn(1,5))
i += 1

'''

[[1.76405235 0.40015721 0.97873798 2.2408932  1.86755799]]
[[-0.97727788  0.95008842 -0.15135721 -0.10321885  0.4105985 ]]
[[0.14404357 1.45427351 0.76103773 0.12167502 0.44386323]]
[[ 0.33367433  1.49407907 -0.20515826  0.3130677  -0.85409574]]
[[-2.55298982  0.6536186   0.8644362  -0.74216502  2.26975462]]

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

[[ 1.62434536 -0.61175641 -0.52817175 -1.07296862  0.86540763]]
[[-2.3015387   1.74481176 -0.7612069   0.3190391  -0.24937038]]
[[ 1.46210794 -2.06014071 -0.3224172  -0.38405435  1.13376944]]
[[-1.09989127 -0.17242821 -0.87785842  0.04221375  0.58281521]]
[[-1.10061918  1.14472371  0.90159072  0.50249434  0.90085595]]
'''

'''

1.np.random.seed(參數)，該語句的位置指定了一個隨機數生成的起始位置。
每個參數對應一個位置，並且在該參數確定後，其後面的額隨機數的生成順序也就確定了。

--我認爲隨意，這個參數只是確定一下隨機數的起始位置。
'''``````