擅长:python、mysql、java
<p>阅读<a href="https://en.wikipedia.org/wiki/Einstein_notation" rel="nofollow noreferrer">Einstein summation notation</a>。在</p>
<p>基本上,规则是:</p>
<h2>没有<code>-></code></h2>
<ul>
<li>输入中重复的任何字母都代表一个要乘和求和的轴</li>
<li>输入中没有重复的任何字母都包含在输出中</li>
</ul>
<h2>使用<code>-></code></h2>
<ul>
<li>输入中重复的任何字母都表示要乘以的轴</li>
<li>输出中不包含的任何字母都表示要求和的轴</li>
</ul>
<p>例如,对于形状相同的矩阵<code>A</code>和{<cd4>}:</p>
<pre><code>np.einsum('ij, ij', A, B) # is A ddot B, returns 0d scalar
np.einsum('ij, jk', A, B) # is A dot B, returns 2d tensor
np.einsum('ij, kl', A, B) # is outer(A, B), returns 4d tensor
np.einsum('ji, jk, kl', A, B) # is A.T @ B @ A, returns 2d tensor
np.einsum('ij, ij -> ij', A, B) # is A * B, returns 2d tensor
np.einsum('ij, ij -> i' , A, A) # is norm(A, axis = 1), returns 1d tensor
np.einsum('ii' , A) # is tr(A), returns 0d scalar
</code></pre>