numpy.random.seed()的使用

seed()用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed()值,则每次生成的随机数都相同;如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异

from numpy import random

num = 0
while num < 5:
    random.seed()
    print(random.random())
    num += 1
    
'''
第一次执行时的结果:
	0.7601325271871893
    0.8037047502000352
    0.7583274205079213
    0.0216286601791702
    0.20125280317022431

第二次执行时的结果:
	0.6253748753047988
    0.5298164006149453
    0.49746740962231206
    0.614111668129977
    0.07029823222050369
'''

上面的seed()中是没有数字的,此时我们在seed()中添加一个数字

from numpy import random

num = 0
while num < 5:
    random.seed(4)
    print(random.random())
    num += 1
    
'''
第一次执行时的结果:
	0.9670298390136767
    0.9670298390136767
    0.9670298390136767
    0.9670298390136767
    0.9670298390136767

第二次执行时的结果:
	0.9670298390136767
    0.9670298390136767
    0.9670298390136767
    0.9670298390136767
    0.9670298390136767
'''

# 如果将seed()中的数字由4改成5
num = 0
while num < 5:
    random.seed(5)
    print(random.random())
    num += 1
    
'''
第一次执行时的结果:
	0.22199317108973948
    0.22199317108973948
    0.22199317108973948
    0.22199317108973948
    0.22199317108973948

第二次执行时的结果:
	0.22199317108973948
    0.22199317108973948
    0.22199317108973948
    0.22199317108973948
    0.22199317108973948
'''

上面的代码中seed()都是在循环中,我们将seed()放到循环外,并且在seed()中添加一个数字

from numpy import random

num = 0
random.seed(5)
while num < 5:
    print(random.random())
    num += 1
    
'''
第一次执行时的结果:
	0.22199317108973948
    0.8707323061773764
    0.20671915533942642
    0.9186109079379216
    0.48841118879482914

第二次执行时的结果:
	0.22199317108973948
    0.8707323061773764
    0.20671915533942642
    0.9186109079379216
    0.48841118879482914
'''

此时,虽然一个循环中每一次的random.random()结果并不相同,但是第一次代码执行的结果和第二次代码执行的结果相同


针对上述几次代码执行的结果,我们来做一下总结:

seed()中的数字是计算机创建随机数的依据,确定seed()中的数字后(比如seed(5)),之后所有的随机操作都有确定性。上述例子中,seed()在循环外时,多次运行random.random()会产生一个固定顺序的序列;seed()在循环内时,每次都是重新定义一次相同的seed()(seed(5)),然后执行一次random.random(),因此每次产生的都是固定的随机序列的首项

参考:numpy.random.seed()的使用

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值