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
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)
配列の反復処理については、このドキュメントを確認してください。
numpy.ndarray
要素にアクセスする方法は次のとおりです。
a[i,j]=a[i,j]*r