【问题标题】:numpy array with cython带有 cython 的 numpy 数组
【发布时间】:2013-01-06 15:19:49
【问题描述】:

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

您在下面看到一个代码sn-p(简化示例)的代码。

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 的输出:

我在这里错过了什么?

非常感谢。

【问题讨论】:

  • 该图像有点难以阅读 - 复制和粘贴相关位会更容易......
  • 你有什么c编译器? celle[l] *= celle[l] 一样吗?

标签: python numpy cython


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-08-10
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 2011-11-18
    • 1970-01-01
    相关资源
    最近更新 更多