Python中更快的n维插值和模拟

2024-05-08 19:05:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python编写一些软件,允许用户运行模拟,包括简单的加法、乘法和任意维数的插值。在这个过程中,函数必须在N维网格上重复(和顺序地)加法、乘法和插值。我必须在一个循环中执行此操作,因为在每次迭代中,结果都依赖于上一次迭代(它们不可并行化)。在一维情况下,它看起来像

T = 1000000000
b = 0
for t in range(T):
    b = b * f(b) + np.random.randn()
    b = b + f(b)

上面代码中的f是由用户提供的数据和网格创建的一个插入式。在每次迭代中,使用相同的插入项。在

首先想到的是使用numba来加速循环。但是,为了能够在N维网格上进行插值,我必须使用scipy.interpolate.RegularGridInterpolator,但是使用它会阻止我在nopython模式下运行numba。我知道有this package允许更快的插值,但我不确定是否可以在nopython模式下使用它。另外,我想知道是否还有其他方法可以克服这个瓶颈?非常感谢任何帮助。在


Tags: 函数用户in网格for软件顺序过程