简单的方法来创建随机数矩阵(Simple way to create matrix of rando

2019-07-21 18:27发布

我想创建随机数的矩阵,但我的解决办法是太长,看起来难看

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)]

这是非常不可读,不适合一行。

Answer 1:

看看numpy.random.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 ]])


Answer 2:

您可以删除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]])


Answer 3:

使用np.random.randint()作为numpy.random.random_integers()已过时

random_matrix = numpy.random.randint(min_val,max_val,(<num_rows>,<num_cols>))


Answer 4:

看起来你正在做的Coursera机器学习神经网络训练的Python实现。 下面是我做了randInitializeWeights(L_IN,L_out)

#get a random array of floats between 0 and 1 as Pavel mentioned 
W = numpy.random.random((L_out, L_in +1))

#normalize so that it spans a range of twice epsilon
W = W * 2 * epsilon

#shift so that mean is at zero
W = W - epsilon


Answer 5:

首先,创建numpy数组,然后将其转换成matrix 。 请参见下面的代码:

import numpy

B = numpy.random.random((3, 4)) #its ndArray
C = numpy.matrix(B)# it is matrix
print(type(B))
print(type(C)) 
print(C)


Answer 6:

random_matrix = [[random.random for j in range(collumns)] for i in range(rows)
for i in range(rows):
    print random_matrix[i]


Answer 7:

x = np.int_(np.random.rand(10) * 10)

对于随机数出10对了20,我们有20繁殖。



Answer 8:

当你说“随机数字矩阵”,你可以使用numpy的作为帕维尔https://stackoverflow.com/a/15451997/6169225上面提到的,在这种情况下,我假设你是什么无关,这些分布(伪)随机数坚持。

不过,如果你需要一个特定的分布(我想你有兴趣的均匀分布), numpy.random对你非常有用的方法。 例如,假设您想要通过[低,高]为界的伪随机均匀分布的3×2矩阵。 你可以这样做,像这样:

numpy.random.uniform(low,high,(3,2))

请注意,您可以取代uniform任意数量的该库支持分布。

延伸阅读: https://docs.scipy.org/doc/numpy/reference/routines.random.html



Answer 9:

使用应答的map-reduce: -

map(lambda x: map(lambda y: ran(),range(len(inputs[0]))),range(hiden_neurons))


Answer 10:

产生随机整数数组的一个简单的方法是:

matrix = np.random.randint(maxVal, size=(rows, columns))

下面输出由从0到10的随机整数的3矩阵2:

a = np.random.randint(10, size=(2,3))


文章来源: Simple way to create matrix of random numbers