python - 从一个数据的结构中找到外推并将其应用于另一个数据

标签 python numpy scipy scikit-learn

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

我可以使用 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 值为 filter1filter2,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:]])

关于python - 从一个数据的结构中找到外推并将其应用于另一个数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32783350/

相关文章:

python - 导入 Python 文件是否也会将导入的文件导入 shell?

Python keras 神经网络 (Theano) 包返回有关数据维度的错误

python - 使用optimize.curve_fit函数的结果不是正确的 float 组

python - 为什么 x[i][ :]=x[:][i] where x is a list of lists?

python - Celery worker 卡在 ZEO 数据库访问上(竞争条件?)

python - Python3 重写字典行为

python - 从numpy生成的wav文件无法听见(完全静音)

python - 约束线性回归/二次规划 python

python 无法使用 process.terminate 终止进程

python - 将两个指数不匹配的 Pandas 系列相乘