117

乱数の行列を作成しようとしていますが、ソリューションが長すぎて見苦しいです

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

これは非常に読みにくく、1行に収まりません。

4

13 に答える 13

104

以下をドロップできます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]])
于 2013-03-16T16:57:09.183 に答える
98

numpy.random.randを見てください:

Docstring: 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 ]])
于 2013-03-16T16:57:07.897 に答える
28

非推奨np.random.randint()として使用np.random.random_integers()

random_matrix = np.random.randint(min_val,max_val,(<num_rows>,<num_cols>))
于 2018-02-03T10:30:36.733 に答える
2
x = np.int_(np.random.rand(10) * 10)

10 のうちの乱数の場合。20 のうちの 20 を掛ける必要があります。

于 2016-08-07T11:11:42.203 に答える
2

ランダムな整数の配列を作成する簡単な方法は次のとおりです。

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

以下は、0 から 10 までのランダムな整数の 2 行 3 列の行列を出力します。

a = np.random.randint(10, size=(2,3))
于 2019-04-05T18:58:49.200 に答える
1

map-reduce を使用した回答:-

map(lambda x: map(lambda y: ran(),range(len(inputs[0]))),range(hiden_neurons))
于 2013-03-16T17:00:21.403 に答える
1
random_matrix = [[random.random for j in range(collumns)] for i in range(rows)
for i in range(rows):
    print random_matrix[i]
于 2013-12-22T08:15:05.967 に答える