2
我想通过将它翻译成Cython来加速我的Python。它使用函数scipy.integrate.quad,它需要一个可调用python作为其参数之一。有什么办法可以在Cython的cdef语句中定义和传递函数,所以我可以使用它?从Cython的cdef语句中使用scipy.integrate.quad?
谢谢。
我想通过将它翻译成Cython来加速我的Python。它使用函数scipy.integrate.quad,它需要一个可调用python作为其参数之一。有什么办法可以在Cython的cdef语句中定义和传递函数,所以我可以使用它?从Cython的cdef语句中使用scipy.integrate.quad?
谢谢。
是的,你只需要用python函数包装函数。
def py_callback(a):
return c_callback(a)
cdef float c_callback(float a):
return a * a
...
scipy.integrate.quad(py_callback)
当然有一些转换过载。 另一种方法是查看如何实现该功能。
否则,你必须使用一些其他的纯C集成函数,并跳过scipy之一。