我想在0.00001到100000之间创建随机点,我尝试使用以下代码
np.random.uniform(0.00001,100000,100)
我有两个问题。 第一个问题是我希望有一个像random_state = 123这样的随机种子,以便我可以复制我的代码。 第二个问题与random.uniform的统一性有关。尽管函数的名称似乎没有从均匀分布中得出数组(见图)。
编辑:我认为我没有正确解释第二个问题。我希望我的值从1e-5到1e + 5均匀分布。结果均匀分布,但不包含非常小的数字。这就是我将其改为
的原因temp = 10 ** np.random.uniform(-5,5,100)
解决了我打算在第二个问题中解决的问题。
答案 0 :(得分:3)
第一个问题: numpy播种就是这样做的
>>> from numpy.random import RandomState
>>> rs = RandomState(123)
>>> rs.uniform(0.00001,100000,100)[:3]
array([69646.91856282, 28613.93350218, 22685.14536415])
>>> rs.uniform(0.00001,100000,100)[:3]
array([51312.81542477, 66662.45501974, 10590.84851462])
>>> rs.seed(123) # resetting state of the PRNG
>>> rs.uniform(0.00001,100000,100)[:3]
array([69646.91856282, 28613.93350218, 22685.14536415])
不要使用numpy.random.seed
,因为它会设置全局状态。有关这样做的问题的信息,请查看评论主题here。
第二个问题:对我来说看起来很整齐。有什么问题?