相关疑难解决方法(0)

cython 函数输出与 python 函数输出略有不同

我通过向某些变量添加类型将 python 函数转换为等效的 cython。但是,cython 函数产生的输出与原始 python 函数略有不同。

我在这篇文章Cython 中了解到了这种差异的一些原因 :numpy 数组的 unsigned int 索引给出了不同的结果 但是即使我在这篇文章中学到了什么,我仍然无法让 cython 函数产生相同的结果作为蟒蛇之一。

所以我整理了 4 个函数来说明我的尝试。有人可以帮助揭示为什么我对每个函数的结果略有不同吗?以及如何获得返回与 function1 完全相同的值的 cython 函数?我在下面发表一些评论:

%%cython
import numpy as np
cimport numpy as np    

def function1(response, max_loc):    
    x, y = int(max_loc[0]), int(max_loc[1])

    tmp1 = (response[y,x+1] - response[y,x-1]) / 2*(response[y,x] - min(response[y,x-1], response[y,x+1]))
    tmp2 = (response[y,x+1] - response[y,x-1])
    tmp3 = 2*(response[y,x] - min(response[y,x-1], response[y,x+1]))

    print tmp1, tmp2, tmp3        
    return tmp1, tmp2, tmp3

cpdef function2(np.ndarray[np.float32_t, ndim=2] response, np.ndarray[np.float64_t, ndim=1] max_loc):
    cdef …
Run Code Online (Sandbox Code Playgroud)

python numpy cython

5
推荐指数
1
解决办法
1244
查看次数

标签 统计

cython ×1

numpy ×1

python ×1