擅长:python、mysql、java
<p>如果您重新排列元素以获得以下形式,则可以使用矩阵乘法</p>
<p><a href="https://i.stack.imgur.com/DQ2sS.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/DQ2sS.png" alt=""/></a></p>
<p>之后,你可以通过简单的矩阵乘法来计算一切</p>
<p>请注意,2x2矩阵的k、j、l、m都可用,它们构造的矩阵可以预先计算</p>
<p>在这种情况下,它们将是:</p>
<pre><code>k = 1-x
l = y*γ
m = x*χ
n = 1-y
</code></pre>
<p>此外,我建议预先分配任何可能使用的数组,因为大小始终可用(附加列表的成本非常高)</p>
<p>无论如何,for循环是不可避免的。但我想下面的内容会让它更整洁</p>
<pre class="lang-py prettyprint-override"><code>from functools import reduce
import numpy as np
def compute(mat, inp):
return reduce(np.dot, mat) @ inp
</code></pre>