首页 > 学院 > 开发设计 > 正文

numpy.random.RandomState()和numpy.random.seed()解读

2019-11-06 09:08:03
字体:
来源:转载
供稿:网友

1 numpy.random.seed()用于设置随机数种子

1.1 参数seed

seed可以是一个int,满足0<=seed<=2(32−1),这个条件的int都可以做参数。 seed可以是一个arrayseed可以是None

用一句话总结numpy.random.seed()numpy.random.RandomState()的关系:

相同处: 他们的参数都是随机数seed不同处: numpy.random.RandomState()更为复杂,完全可以代替numpy.random.seed()这条语句。随机数种子seed只有一次有效,在下一次调用产生随机数函数前没有设置seed,则还是产生随机数。

1.如果需要不产生随机数,则需要每次设置numpy.random.seed()

>>> import numpy>>> #注意这里是两条语句>>> numpy.random.seed(0);numpy.random.rand(4)array([ 0.5488135 , 0.71518937, 0.60276338, 0.54488318])>>>numpy.random.seed(0);numpy.random.rand(4)array([ 0.5488135 , 0.71518937, 0.60276338, 0.54488318])>>>numpy.random.seed(0);numpy.random.rand(4)array([ 0.5488135 , 0.71518937, 0.60276338, 0.54488318])

2.如果需要每次都产生随机数,则可以将随机数seed设置成None,或者不设置。

>>> import numpy>>> numpy.random.seed(None)>>> numpy.random.rand(4)array([ 0.5488135 , 0.71518937, 0.60276338, 0.54488318])>>> numpy.random.rand(4)array([ 0.4236548 , 0.64589411, 0.43758721, 0.891773 ])>>> numpy.random.rand(4)array([ 0.96366276, 0.38344152, 0.79172504, 0.52889492])

2 numpy.random.RandomState()设置seed同时产生随机数

2.1 numpy.random.RandomState()

>>> import numpy>>> numpy.random.RandomState(0).rand(4)array([ 0.5488135 , 0.71518937, 0.60276338, 0.54488318])>>> numpy.random.RandomState(0).rand(4)array([ 0.5488135 , 0.71518937, 0.60276338, 0.54488318])>>> numpy.random.RandomState(0).rand(4)array([ 0.5488135 , 0.71518937, 0.60276338, 0.54488318])#暂不清楚这个seed整数有什么用>>> numpy.random.RandomState(None).rand(4)array([ 0.5488135 , 0.71518937, 0.60276338, 0.54488318])>>> numpy.random.RandomState(None).rand(4)array([ 0.4236548 , 0.64589411, 0.43758721, 0.891773 ])>>> numpy.random.RandomState(None).rand(4)array([ 0.96366276, 0.38344152, 0.79172504, 0.52889492])

参考网页: numpy官方文档v1.12


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表