最近数値計算をpythonでやり始めた者です。

例えば

A.shape #(3,5,5)
B.shape #(3,)

の形をもつA,Bについて

numpy.array([ A[i,:,:] * B[i] for i in range(3)]).reshape(5,5)

を計算したいのですが、この方法では規模が大きくなると遅いような気がしています。
この操作をより速く動くように書く方法はないものでしょうか?