我有一个包含50个元素的np数组,例如:
data = np.array([9.22, 9. , 9.01, ..., 7.98, 6.77, 7.3 ])
对于data
np.数组中的每个元素,我都有一个要插入的x
和y
数据对(长度相同)。
x一个一个一个一个x一个一个二个x
- 我想用
x
和y
的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))
如有任何建议,我们将不胜感激。
1条答案
按热度按时间4nkexdtk1#
如果您有一个
x
数组和多个y
数组,较新的插值器(make_interp_spline
、PchipInterpolator
等)会自动支持多维y
数组。如果你真的有一个1D数组对的集合,
x
和y
,其中x
数组不同,你想让scipy循环这些数据集,那么不行,scipy不支持,你需要手动循环。