NumPy の numpy.outer() メソッドでは一次元配列の直積 (outer product)(結果は二次元配列=行列)を計算できますが,例えば二次元配列と一次元配列の直積(結果は三次元配列)を直接計算することができません。
いろいろな情報が出回っていますが,numpy.multiply.outer() メソッドを使うのが一番分かりやすいようです。このメソッドを使えば m 次元配列と n 次元配列の直積として m × n 次元配列が自然に得られます。
NumPy を使って多重の重みつき数値積分をするとき,直積を使って多次元配列にしてからブロードキャスト機能を使って各要素ごとの計算をし,「@」記号を使って内積計算をするのが分かりやすいと思います。
Leave a Reply