在numpy中的指定间隔(不是[0,1])上生成均匀分布的随机数的NxM数组

时间:2019-02-08 17:55:01

标签: python numpy random

我知道numpy.random.rand()命令,但是似乎没有任何变量可让您将选择数字的统一间隔调整为[0,1)以外的其他值。

我考虑过使用for循环,即初始化所需大小的零数组,并使用numpy.random.unifom(a,b,N)在间隔(a,b)中生成N个随机数,然后将这些放入初始化数组。我不知道这个模块是要创建一个任意维度的数组,就像上面的rand。尽管您主要关心的是运行时间,但这显然是不雅的。我认为与从一开始就使用适当的随机数生成器相比,该方法的运行时间要长得多。

编辑和其他考虑:我工作的时间间隔是[0,pi / 8)小于1。严格来说,如果我重新缩放,我不会影响所生成数字的随机性,但是会相乘每个生成的随机数显然都将是额外的计算时间,我推测一个因素是元素数量的顺序。

2 个答案:

答案 0 :(得分:2)

np.random.uniform接受低价和高价:

In [11]: np.random.uniform(-3, 3, 7)  # 7 numbers between -3 and 3
Out[11]: array([ 2.68365104, -0.97817374,  1.92815971, -2.56190434,  2.48954842, -0.16202127, -0.37050593])

答案 1 :(得分:1)

numpy.random.uniform接受一个size参数,您可以在其中将数组的大小作为元组传递。要生成MxN数组,请使用

np.random.uniform(low,high, size=(M,N))