创建一个给定size的NumPy数组的最佳方法是什么?该数组的值随机均匀地分布在-1和1之间。我试过2*np.random.rand(size)-1
size
-1
1
2*np.random.rand(size)-1
zpf6vheq1#
我不确定。试试看:
s = np.random.uniform(-1, 1, size)
参考:https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.uniform.html
xwbd5t1u2#
我可以使用numpy.arange:
numpy.arange
import numpy as np print(np.arange(start=-1.0, stop=1.0, step=0.2, dtype=np.float))
step参数定义元素分布的大小和均匀性。
step
wvyml7n53#
在您的解决方案中,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,我建议如下:
np.random.rand(size)
2 * np.random.rand(size) - 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
l7wslrjt4#
!00%工作代码:a=np.随机.均匀(-1,1)打印(a)
4条答案
按热度按时间zpf6vheq1#
我不确定。试试看:
参考:https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.uniform.html
xwbd5t1u2#
我可以使用
numpy.arange
:step
参数定义元素分布的大小和均匀性。wvyml7n53#
在您的解决方案中,
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,我建议如下:
我已经使用了新的建议发电机每numpy,见链接https://numpy.org/devdocs/reference/random/index.html#quick-start
l7wslrjt4#
!00%工作代码:a=np.随机.均匀(-1,1)打印(a)