numpy.random.seed()使用

import numpy as np

np.random.seed(2)  # 生成随机种子2 一次使用机会 作用在下一个随机数生成的时候
a = np.random.random()  # 使用随机种子2
b = np.random.random()  # 因为随机种子使用完了 ! 这里使用默认按系统根据时间作为seed参数的随机种子
print(a)  # 随机种子2的随机数
print(b)  # 根据系统时间为参数生成的随机数

第一次给python file命名的时候用了random.py。发现会报错,因为numpy里面的random模块和file名重了,所以报错,后面改为seed则可以正常使用,但是生成的随机数不同。

由于您的random.py脚本中也包含了尝试从NumPy库中导入random模块的代码,这就造成了一个循环导入的问题(circular import),因为random.py在尝试导入NumPy的random模块时,又尝试从它自身(而不是NumPy库)中导入np.random,这就导致了AttributeError

要解决这个问题,您需要将您的Python脚本重命名为一个不与NumPy库中任何模块名称相同的名称。例如,您可以将random.py重命名为my_random_script.py或其他任何不与NumPy库冲突的名称。

在NumPy中,当你使用np.random.seed(2)设置随机种子后,每次调用np.random.random()或其他基于随机数的函数(如np.random.randn()np.random.uniform()等)时,都会生成一个基于该种子值的随机数。然而,由于这些随机数生成器是伪随机数生成器,它们会按照一种确定的算法来产生看似随机的序列。

在你给出的例子中,ab都是基于相同的种子值2生成的随机数,但由于它们是在不同的时间点(即不同的函数调用)生成的,所以它们会是不同的数。这是伪随机数生成器的一个关键特性:即使使用相同的种子,每次调用随机数生成函数时,你都会得到一个不同的随机数(在序列中的下一个数)。

简而言之,ab不一样是因为它们是基于相同种子值的伪随机数生成序列中的不同数。

 

import numpy as np
np.random.seed(2)
a= np.random.random()#相同seed(2)种子
np.random.seed(2)
b= np.random.random()#相同seed(2)种子
print(a)
print(b)

此时生成相同的随机数。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值