我想创建随机数的矩阵,但我的解决办法是太长,看起来难看
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)]
这是非常不可读,不适合一行。
我想创建随机数的矩阵,但我的解决办法是太长,看起来难看
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)]
这是非常不可读,不适合一行。
看看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 ]])
您可以删除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]])
使用np.random.randint()作为numpy.random.random_integers()已过时
random_matrix = numpy.random.randint(min_val,max_val,(<num_rows>,<num_cols>))
看起来你正在做的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
首先,创建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)
random_matrix = [[random.random for j in range(collumns)] for i in range(rows)
for i in range(rows):
print random_matrix[i]
x = np.int_(np.random.rand(10) * 10)
对于随机数出10对了20,我们有20繁殖。
当你说“随机数字矩阵”,你可以使用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
使用应答的map-reduce: -
map(lambda x: map(lambda y: ran(),range(len(inputs[0]))),range(hiden_neurons))
产生随机整数数组的一个简单的方法是:
matrix = np.random.randint(maxVal, size=(rows, columns))
下面输出由从0到10的随机整数的3矩阵2:
a = np.random.randint(10, size=(2,3))