我需要使用ctypes函数来减少python中quad的运行时间。这是我原来的问题original question,但现在我知道我需要遵循什么路径。我需要按照与此处similar problem link相同的步骤操作。optimazing使用ctypes python quad
但在我的情况下,将在数值积分中处理的函数调用另一个python函数。就像这样:
from sklearn.neighbors import KernelDensity
import numpy as np
funcA = lambda x: np.exp(kde_bad.score_samples([[x]]))
quad(funcA, 0, cut_off)
其中停产仅仅是我在我的代码决定一个标量,并kde_bad是使用KernelDensity内核对象创建的。
所以我的问题是我如何需要在C中指定函数?相当于此:
//testlib.c
double f(int n, double args[n])
{
return args[0] - args[1] * args[2]; //corresponds to x0 - x1 * x2
}
任何输入赞赏!