生成随机数矩阵的简单方法
我正在尝试创建一个随机数字的矩阵,但我的解决方案太长了,看起来很丑。
random_matrix = [[random.random() for e in range(2)] for e in range(3)]
这个看起来还不错,但在我的实现中是
weights_h = [[random.random() for e in range(len(inputs[0]))] for e in range(hiden_neurons)]
这段代码非常难以阅读,而且一行放不下。
13 个回答
37
使用 np.random.randint()
,因为 np.random.random_integers()
已经不再推荐使用了。
random_matrix = np.random.randint(min_val,max_val,(<num_rows>,<num_cols>))
119
你可以去掉 range(len())
这部分:
weights_h = [[random.random() for e in inputs[0]] for e in range(hiden_neurons)]
不过其实,你最好还是用 numpy 库。
In [9]: numpy.random.random((3, 3))
Out[9]:
array([[ 0.37052381, 0.03463207, 0.10669077],
[ 0.05862909, 0.8515325 , 0.79809676],
[ 0.43203632, 0.54633635, 0.09076408]])
110
看看这个 numpy.random.rand:
文档说明:rand(d0, d1, ..., dn)
在给定的形状下生成随机值。
创建一个指定形状的数组,并用从均匀分布中抽取的随机样本填充它,这个均匀分布的范围是
[0, 1)
。
>>> import numpy as np
>>> np.random.rand(2,3)
array([[ 0.22568268, 0.0053246 , 0.41282024],
[ 0.68824936, 0.68086462, 0.6854153 ]])