2016-05-26 11 views
2

次のコードをベクトル化するにはどうすればよいですか?私はすでに放送を見てきましたが、私は次のコードをベクトル化する方法を把握することはできませんよ:bは(2,3,4)サイズの配列とcあるnumpyで以下のようにループをベクトル化する方法は?

for k in range(m): 
    b[k] = b[k,:] + c[k] 

は(1,2です)サイズ配列とmいくつかの固定された整数です??

答えて

3

c1Dの配列です。ここでbの最初の軸に沿ってcの要素を追加するには、に2つのシングルトンディメンション(またはNumPyの用語では新しい軸)を追加して、None/np.newaxisと入力して、必要な追加を行う必要があります。を3Dに変更します。これによりベクトル化されたNumPy broadcastingが再生されます。だから、実装は次のようになります -

b += c[:,None,None] 

cが本当に(1,2)形の配列だった場合、その解決策は以下のようになり -

b += c.T[:,None] 
関連する問題