-1和1之间的numpy随机数组值

时间:2019-04-20 01:05:13

标签: python numpy

创建给定size的NumPy数组的最佳方法是什么?该数组的值随机且均匀地分布在-11之间?

我尝试了2*np.random.rand(size)-1

3 个答案:

答案 0 :(得分:0)

我可以使用numpy.arange

import numpy as np

print(np.arange(start=-1.0, stop=1.0, step=0.2, dtype=np.float))

step参数定义元素分布的大小和均匀性。

答案 1 :(得分:0)

我不确定。试试:

s = np.random.uniform(-1, 1, size)

参考:https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.uniform.html

答案 2 :(得分:0)

在您的解决方案中,np.random.rand(size)返回半开间隔[0.0,1.0)中的随机浮点数

这意味着2 * np.random.rand(size) - 1返回半开间隔[0,2)-1:= [-1,1)中的数字,即范围包括-1但不包括1。

如果这是您想要做的,那没关系。

但是,如果您希望在开放时间间隔(-1,1)中生成数字,即 -1和1之间,因此不包括 -1或1,我可以建议以下内容-

from numpy.random import default_rng
rg = default_rng(2)

size = (5,5)

rand_arr = rg.random(size)
rand_signs = rg.choice([-1,1], size)

rand_arr = rand_arr * rand_signs

print(rand_arr)

我已经使用了每个numpy建议的新生成器,请参见链接https://numpy.org/devdocs/reference/random/index.html#quick-start