擅长:python、mysql、java
<p>在我的机器上这更快:</p>
<pre><code>(a == b).sum()
</code></pre>
<p>如果你不想使用任何额外的存储空间,那么我建议使用numba。
我不太熟悉,但这似乎很管用。
我在让Cython使用布尔NumPy数组时遇到了一些麻烦。在</p>
^{pr2}$
<p>如果你没有numba,我建议使用@user2357112的答案</p>
<p>编辑:刚得到一个Cython版本,这是<code>.pyx</code>文件。我会同意的。在</p>
<pre><code>from numpy cimport ndarray as ar
cimport numpy as np
cimport cython
@cython.boundscheck(False)
@cython.wraparound(False)
def cysumeq(ar[np.uint8_t,ndim=2,cast=True] a, ar[np.uint8_t,ndim=2,cast=True] b):
cdef int i, j, h=a.shape[0], w=a.shape[1], tot=0
for i in xrange(h):
for j in xrange(w):
if a[i,j] == b[i,j]:
tot += 1
return tot
</code></pre>