Python 从一个数据的结构中寻找外推,并将其应用于另一个

Python 从一个数据的结构中寻找外推,并将其应用于另一个,python,numpy,scipy,scikit-learn,Python,Numpy,Scipy,Scikit Learn,我有一个过滤器。它们应该具有相同的结构,但它们的比例不同,并且图中显示的数据在10000之前被截断。我只是将值设置为10000等于零,但我想外推顶部过滤器,以便遵循。链接中提供了与每个过滤器相关的数据。我不知道如何从底部过滤器中的数据获得尾部结构,并将其应用于顶部过滤器,因为它们的缩放方式不同。请注意,我需要使用上面板过滤器,因为我的其他过滤器已相应校准。 我可以使用interp1d获得下部过滤器的插值,但我不知道如何正确地重新缩放它以用于顶部过滤器 from scipy.interpolat

我有一个过滤器。它们应该具有相同的结构,但它们的比例不同,并且图中显示的数据在10000之前被截断。我只是将值设置为10000等于零,但我想外推顶部过滤器,以便遵循。链接中提供了与每个过滤器相关的数据。我不知道如何从底部过滤器中的数据获得尾部结构,并将其应用于顶部过滤器,因为它们的缩放方式不同。请注意,我需要使用上面板过滤器,因为我的其他过滤器已相应校准。

我可以使用
interp1d
获得下部过滤器的插值,但我不知道如何正确地重新缩放它以用于顶部过滤器

from scipy.interpolate import interp1d
from scipy import arange
import numpy as np
u=np.loadtxt('WFI_I.res')
f=interp1d(u[:,0], u[:,1])
x=arange(7050, 12000)
y=f(x)

如果您有任何建议或代码,我将不胜感激。

假设您有两个过滤器阵列,y值分别为
filter1
filter2
,x(波长)值分别为
wave1
wave2
,那么类似的东西应该可以工作(尽管未经测试):


谢谢非常好的回答,但是有两点没有遵循顶部过滤器的结构。我不明白为什么?
wave_match = 9500  # wavelength for matching
index1 = np.searchsorted(wave1, wave_match)
index2 = np.searchsorted(wave2, wave_match)
match1 = filter1[index1]
match2 = filter2[index2]
scale = match1 / match2

wave12 = np.concatenate([wave1[:index1], wave2[index2:]])
filter12 = np.concatenate([filter1[:index1], scale * filter2[index2:]])