我正在尝试将一些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]
我不明白为什么最里面的循环不能完全转换为C代码(即最后一行,celle [l] = ...),请参阅
cython -a feedback
的输出:我在这里想念什么?
非常感谢。
最佳答案
我终于意识到,在函数的最后添加一个简单的“return 0”即可解决此问题。但是,这种行为对我来说似乎很奇怪。这实际上是一个错误吗?
关于python - cypy的numpy数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14183533/