python 多Numpy阵列的矢量化Scipy三次插值

erhoui1w  于 2022-12-25  发布在  Python
关注(0)|答案(1)|浏览(108)

我有一个包含50个元素的np数组,例如:

data = np.array([9.22, 9. , 9.01, ..., 7.98, 6.77, 7.3 ])

对于data np.数组中的每个元素,我都有一个要插入的xy数据对(长度相同)。
x一个一个一个一个x一个一个二个x

    • 我想用xy的np数组插入每个数据元素。**

我有以下使用map()的解决方案:

def cubic_spline(i):
     return scipy.interpolate.splev(x=data[i],
                                    tck=scipy.interpolate.splrep(x[i], y[i], k=3))

list(map(cubic_spline, np.arange(len(data)))
    • 但我想知道是否有一种方法可以直接使用scipy和numpy来优化执行时间**。
scipy.interpolate.splev(x=data,
                        tck=scipy.interpolate.splrep(x, y, k=3))

如有任何建议,我们将不胜感激。

4nkexdtk

4nkexdtk1#

如果您有一个x数组和多个y数组,较新的插值器(make_interp_splinePchipInterpolator等)会自动支持多维y数组。
如果你真的有一个1D数组对的集合,xy,其中x数组不同,你想让scipy循环这些数据集,那么不行,scipy不支持,你需要手动循环。

相关问题