擅长:python、mysql、java
<p>对于简单的矩阵乘法,NumPy代码已经只在本机进行循环和乘法,所以很难在Cython中击败它。Cython非常适合于将Python中的循环替换为Cython中的循环的情况。代码比NumPy慢的原因之一是,每次在数组中执行索引查找时</p>
<pre><code>self.bendingForces[ index1, index2 ] = self.matrixPrefactor.data[ index1, index2 ] * membraneHeight.data[ index1, index2 ]
</code></pre>
<p>它执行更多的计算,比如边界检查(索引是有效的)。如果将索引强制转换为无符号整数,则可以在函数之前使用修饰符<code>@cython.boundscheck(False)</code>。在</p>
<p>有关加速Cython代码的更多详细信息,请参见这个<a href="http://docs.cython.org/src/userguide/numpy_tutorial.html" rel="noreferrer">tutorial</a>。在</p>