情報科学 › 研究のための計算の実務 › NumPy で書く配列計算

添字による縮約

定義 5.1(「NumPy で書く配列計算」§5)

配列 T(1),…,T(m)T^{(1)},\ldots,T^{(m)} の各軸に添字の名前(文字)を付け、同じ名前の軸は同じ長さをもつとする。出力に残す名前の列を指定したとき、縮約の結果は、出力の名前の値を固定し、残りのすべての名前について和をとった

R[出力の添字]=∑出力にない添字 ∏r=1mT(r)[その配列の添字]R[\text{出力の添字}]=\sum_{\text{出力にない添字}}\ \prod_{r=1}^mT^{(r)}[\text{その配列の添字}]

である。np.einsum("ij,jk->ik", A, B) は行列の積 Rik=∑jAijBjkR_{ik}=\sum_jA_{ij}B_{jk} を表す。

m≥3m\ge3 のとき、配列を 2 つずつ縮約して中間結果に置き換えていく手順を縮約順序という。2 つの配列の縮約の費用を、定義の式どおりに計算したときのスカラーの乗算の回数、すなわち 2 つの配列に現れるすべての名前の長さの積とする。p×qp\times q 行列と q×rq\times r 行列の積の費用は pqrpqr である。

本文で読む(前後の説明と例)→

閉包の状態

定義

定義は閉包の起点です(証明を要しません)。

印の意味: ✓公理まで証明済み ・ △証明あり(閉包未完)・ ※主張のみ。テーマごとの集計は 閉包の状況。

これを使っている定理 証明で参照している 1 件

関連するノック 1 問