【发布时间】:2022-01-03 20:08:54
【问题描述】:
我有一个使用 interp1d 创建的插值函数 f(x)。
现在从函数 f(x),我必须构造一个函数 f(y,z),其中 x=(y-z)/2。
我正在使用这样的嵌套循环:
f = lambda x: x**3
y = np.arange(0,100)
z = np.arange(0,100)
fnew = np.zeros((100,100))
for i in range(0,100):
for j in range(0,100):
fnew[i,j] = f((y[j]-z[i])/2)
为了说明,我取了函数 f=x^3。但是,由于我为 i 和 j 迭代了大约 8000 个值,并且由于 f(x) 是一个插值函数,因此循环需要很长时间(显然)并且 numba 无法工作。
有没有更好的方法来实现这一点?
【问题讨论】:
-
您的 M(n)WE 缺少 np.zeros 参数元组的右括号
-
@matszwecja 已更正
-
“numba 无法工作”是什么意思?它在我的机器上运行良好(Numba v0.45.1)。
-
@Jérôme Richard 在实际程序中,f(x) 是一个使用 interp1d 制作的插值函数,而 numba 不支持这种插值函数,正如我在问题中提到的那样。
标签: python arrays vectorization interpolation numba