0

numpy.ndarray の各行をフェッチして変換したいと考えています。例えば:

for each row i in array a
    r=random number
    for each element j in row i:
        a[i][j]=a[i][j]*r
4

2 に答える 2

2

rのセルごとに対応する重みを保持する行列を最初に作成することをお勧めしますa。次に、乗算を行います。したがって、ベクトル化のメリットを享受できます。

例:

r = np.zeros(a.shape)
for i in range(a.shape[0]):
    for j in range(a.shape[1]):
        # compute r[i, j]

a = a * r

乱数が のセルに依存しない場合はa、次を実行します。

a = a * numpy.random.rand(a.shape[0], a.shape[1])

また、列の乱数を変更したくない場合は、ブロードキャストを利用できます。

a = a * numpy.random.rand(a.shape[0], 1) 

配列の反復処理については、このドキュメントを確認してください。

于 2013-06-21T12:34:45.797 に答える
0

numpy.ndarray要素にアクセスする方法は次のとおりです。

a[i,j]=a[i,j]*r
于 2013-06-21T12:32:03.170 に答える