分享

numpy.random.seed()的理解

 霖霖爱医学 2020-06-24

代码一是使用了随机数种子seed(),种子数28,seed( ) 是用于指定随机数生成时所用算法开始的整数值,代码中每执行一次都使用了相同的随机数种子28,所以生成的随机数是相同的。

代码一:

for i in range(5):
    np.random.seed(28)
    print(np.random.random())

运行结果:

0.7290137422891191
0.7290137422891191
0.7290137422891191
0.7290137422891191
0.7290137422891191 

代码二中每执行一次都使用了不同的随机数种子i,所以生成的随机数是不同的。

代码二:

for i in range(5):
    np.random.seed(i)
    print(np.random.random())

运行结果:

0.5488135039273248
0.417022004702574
0.43599490214200376
0.5507979025745755
0.9670298390136767

再举个例子代码三,在执行5次循环中,只有第一次循环使用了seed(),因此seed()只作用了运行结果的第一个随机数字,其他几次循环不执行seed()提供的种子数28,所以根据系统的时间来生成自己的种子数,来生成随机数字,且每次生成的随机数字不相同。

代码三:

np.random.seed(28)
for i in range(5):
    print(np.random.random())

运行结果:

0.7290137422891191
0.5612396023276411
0.12496709200924094
0.39759236870011716
0.7813082062734761

总结:

seed( ) 用于指定随机数生成时所用算法开始的整数值。 
1.如果使用相同的seed( )值,则每次生成的随即数都相同; 
2.如果不设置这个值,则系统根据时间来自己选择这个值,生成自己的种子,此时每次生成的随机数因时间差异而不同。 
3.设置的seed()值仅一次有效

 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多