擅长:python、mysql、java
<p>我不认为有任何简单的方法(除了Cython之类的)来加速你的精确操作。但是你可能需要考虑你是否真的需要计算你正在计算的东西。因为如果你可以用<a href="https://en.wikipedia.org/wiki/Root_mean_square" rel="nofollow">root mean square</a>代替绝对值的平均值,你仍然会以某种方式平均内积的大小,但是你可以在一次射击中得到:</p>
<pre><code>rms = np.sqrt(np.einsum('ij,il,kj,kl,k->i', nhat, nhat, m, m, np.ones(M)/M))
</code></pre>
<p>这与执行以下操作相同:</p>
^{pr2}$
<p>是的,这并不完全是你所要求的,但我担心这是最接近你将得到的矢量化方法。如果您决定沿着这条路走下去,请看<code>np.einsum</code>对大的<code>N</code>和<code>M</code>的表现:当传递太多参数和索引时,它有陷入困境的趋势。在</p>