与cython的numpy数组

use*_*358 7 python numpy cython

我正在尝试将一些python代码移植到cython中,我遇到了一些小问题.

您可以在下面看到代码的代码段(简化示例).

cimport numpy as np
cimport cython
@cython.boundscheck(False) # turn of bounds-checking for entire function
@cython.wraparound(False)
@cython.nonecheck(False)
def Interpolation(cells, int nmbcellsx):
    cdef np.ndarray[float,ndim=1] celle
    cdef int cellnonzero
    cdef int i,l
    for i in range(nmbcellsx):
          celle = cells[i].e
          cellnonzero = cells[i].nonzero
          for l in range(cellnonzero):
               celle[l] = celle[l] * celle[l]
Run Code Online (Sandbox Code Playgroud)

我不明白为什么最内层循环没有完全转换为C代码(即最后一行,celle [l] = ...),请参阅以下输出cython -a feedback:

在此输入图像描述

我在这里错过了什么?

非常感谢.

use*_*358 1

我终于意识到,在函数最后一个简单的“return 0”就可以解决这个问题。然而,这种行为对我来说似乎很奇怪。这实际上是一个错误吗?