<p>您可以使用<code>einsum(op0, sublist0, op1, sublist1, ..., [sublistout])</code>形式,而不是<code>i,j,ik->ijk</code>,API不限于52个轴*。这个详细的形式如何对应于ijk形式显示为<a href="http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.einsum.html" rel="nofollow noreferrer">in the documentation</a>。在</p>
<p>手术室</p>
<pre><code>np.einsum('ijk,jklm->ijklm', A, B)
</code></pre>
<p>会写为</p>
^{pr2}$
<p>(*注:<em>实现</em>仍然限于26个轴。请参见<a href="https://stackoverflow.com/a/37796451/224671">@hpaulj's answer</a>和<a href="https://github.com/numpy/numpy/issues/7741" rel="nofollow noreferrer">his bug report</a>了解说明)</p>
<hr/>
<p>numpy例子中的等价物:</p>
<pre><code>>>> np.einsum('ii', a)
>>> np.einsum(a, [0,0])
>>> np.einsum('ii->i', a)
>>> np.einsum(a, [0,0], [0])
>>> np.einsum('ij,j', a, b)
>>> np.einsum(a, [0,1], b, [1])
>>> np.einsum('ji', c)
>>> np.einsum(c, [1,0])
>>> np.einsum('..., ...', 3, c)
>>> np.einsum(3, [...], c, [...])
>>> np.einsum('i,i', b, b)
>>> np.einsum(b, [0], b, [0])
>>> np.einsum('i,j', np.arange(2)+1, b)
>>> np.einsum(np.arange(2)+1, [0], b, [1])
>>> np.einsum('i...->...', a)
>>> np.einsum(a, [0, ...], [...])
>>> np.einsum('ijk,jil->kl', a, b)
>>> np.einsum(a, [0,1,2], b, [1,0,3], [2,3])
</code></pre>