创建给定size
的NumPy数组的最佳方法是什么?该数组的值随机且均匀地分布在-1
和1
之间?
我尝试了2*np.random.rand(size)-1
答案 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