我试图将我的纯python实现移植到Cython,函数签名如下:
所以我的cython函数签名如下:
cpdef cnmi_gradient_2d(double[:, :] jhlog,
double[:, :] reflog, double[:, :] warlog,
int width, int height):
字符串
我打算在纯python代码中将这些数组作为numpy数组,并将其传递给此函数。在代码中的某个位置,我访问这些数组:
for y in range(height):
for x in range(width):
jl = jhlog[x, y]
rl = reflog[x, 0]
wl = warlog[0, y]
型
当我cythonise代码,我得到以下警告:Index should be typed for more efficient access
。
我不知道我应该用这个做什么?我在这里遵循这个指南:http://docs.cython.org/en/latest/src/userguide/numpy_tutorial.html
但我不知道该怎么解决这个警告。
1条答案
按热度按时间fhity93d1#
我有同样的问题,它涉及到你可以很容易地解决这个问题,这个错误是,所以你可以看到,有一个性能错误,你可以很容易地修复。
解决这个问题的方法是执行
cdef int
,然后在for
循环中添加变量的名称。在代码中,您应该在外部for循环之前添加以下内容:字符串
请注意,如果它没有帮助,那么你应该在同一个位置这样做:
型