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之一。