python -- numpy.random.seed()

 

在使用numpy时 ,有时需要用到随机数,并且想让生成的随机数在每次运行时都能得到相同的数组,这时可以使用random.seed(int i)函数,设置随机数种子。

 

下面用几个测试demo,感受下效果~

(1)测试demo1

import pandas as pd
import numpy as np

np.random.seed(0) 
sample = pd.DataFrame(np.random.randn(4, 5), columns = list("abcde"))
print(sample)

运行结果

          a         b         c         d         e
0  1.764052  0.400157  0.978738  2.240893  1.867558
1 -0.977278  0.950088 -0.151357 -0.103219  0.410599
2  0.144044  1.454274  0.761038  0.121675  0.443863
3  0.333674  1.494079 -0.205158  0.313068 -0.854096

 

(2)测试demo2

import pandas as pd
import numpy as np

np.random.seed(0) 
sample = pd.DataFrame(np.random.randn(4, 5), columns = list("abcde"))
print(sample)

np.random.seed(1) #seed(0)修改成seed(1)
sample2 = pd.DataFrame(np.random.randn(4, 5), columns = list("abcde"))
print(sample2)

np.random.seed(0) #依然用seed(0)
sample3 = pd.DataFrame(np.random.randn(4, 5), columns = list("abcde"))
print(sample3)

运行结果

          a         b         c         d         e
0  1.764052  0.400157  0.978738  2.240893  1.867558
1 -0.977278  0.950088 -0.151357 -0.103219  0.410599
2  0.144044  1.454274  0.761038  0.121675  0.443863
3  0.333674  1.494079 -0.205158  0.313068 -0.854096
          a         b         c         d         e
0  1.624345 -0.611756 -0.528172 -1.072969  0.865408
1 -2.301539  1.744812 -0.761207  0.319039 -0.249370
2  1.462108 -2.060141 -0.322417 -0.384054  1.133769
3 -1.099891 -0.172428 -0.877858  0.042214  0.582815
          a         b         c         d         e
0  1.764052  0.400157  0.978738  2.240893  1.867558
1 -0.977278  0.950088 -0.151357 -0.103219  0.410599
2  0.144044  1.454274  0.761038  0.121675  0.443863
3  0.333674  1.494079 -0.205158  0.313068 -0.854096

观察运行结果:第一组输出的随机数与第三组相同,第二组将seed(0)修改为seed(1)后,随机数有变化。

 

(3)测试demo3,seed()不带任何参数

import pandas as pd
import numpy as np

np.random.seed() 
sample = pd.DataFrame(np.random.randn(4, 5), columns = list("abcde"))
print(sample)

np.random.seed() 
sample2 = pd.DataFrame(np.random.randn(4, 5), columns = list("abcde"))
print(sample2)

np.random.seed() 
sample3 = pd.DataFrame(np.random.randn(4, 5), columns = list("abcde"))
print(sample3)

运行结果

          a         b         c         d         e
0  1.094043 -0.931689 -0.532350 -0.237909 -0.230972
1 -0.798923 -2.168856 -0.223408 -2.024618 -1.037132
2 -2.146633  0.018349 -0.561558 -0.240381 -0.680097
3 -0.437220 -1.044515  0.186219 -0.832676 -0.352089
          a         b         c         d         e
0 -0.261296  1.293606 -0.722539 -0.261261  0.406370
1 -0.833043 -0.468739  0.709612 -0.711061 -0.281835
2 -0.871825 -1.707190  1.514178 -0.592277  0.242300
3 -0.067427 -1.750746  0.360844  0.817316  2.208352
          a         b         c         d         e
0  0.183235 -0.221108 -0.137784  1.144260  1.228376
1 -0.393548 -0.620299  0.366166 -1.265649 -0.799490
2 -0.783431  0.854187 -0.550616 -0.817013  0.278221
3  0.199510 -0.830017  0.714336  1.185360  0.193153

观察运行结果,每组产生的随机数都不同。

 

结合以上demo测试结果,对random.seed(int i)的用法小结如下:

1) 如果使用相同的i值,每次生成的随机数都相同。
2) 如果不设置参数i,系统将根据时间自动选择i值,生成的随机数是存在差异的。

 

此篇到此结束~

 

posted @ 2023-05-10 17:59  lmei  阅读(58)  评论(0编辑  收藏  举报