2016-05-12 7 views

答えて

6

これは、同様の問題に対する異なるアプローチです。 einsumがより一般的です。速度も同様ですが、個々のケースを確認する必要があります。

tensordotは、軸を再形成して置き換え、問題をnp.dotで解決できるようにすることで機能します。コードdotまではPythonですので、あなた自身で読むことができます。

einsumは、物理学で使用されている「アインシュタイン表記」(彼のニーズと用途に合わせて書かれた科学者によって書かれたもの)で動作するように「地上から」構築されています。ドキュメンテーションはそれをカバーしています。それはCコードなので、少し勉強するのは難しいです。基本的には、インデックスの文字列を解析し、積和演算のいくつかの並べ替えを行い、入力配列を反復しますnditerオブジェクトを構築します。あなただけのインデックス、対角線などする場所それは、これらの機能のいずれかについて尋ねた質問の数、または解答での使用を示唆があった場合には

を短いカットを取ることができます。新しいバージョンでは

異なる方法でdotを一般np.matmulもあります。これはPython3.5で新しい@オペレータにリンクされています。