У меня есть 2 массива.
DEPTH = array([1945.0813, 1945.2337, 1945.3861, ..., 3089.7577,
3089.9101,3090.0625])
DEPTH.shape = (7514,)
'CURVE_VALUES' = array([[ 8.8783, 16.5181, nan, 42.9207,
137.1404],
[ 8.8783, 16.4784, nan, 42.2368, 137.8069],
[ 8.8783, 16.685 , nan, 41.3884, 138.402 ],
...,
[ nan, nan, nan, nan, nan],
[ nan, nan, nan, nan, nan],
[ nan, nan, nan, nan, nan]])
CURVE_VALUES.shape = (7514, 5)
Как я могу интерполировать 'CURVE_VALUES' над 'DEPTH', чтобы, если у меня был новый массив
'NEW_DEP' = массив ([1950.1104, 1950.2628, 1950.4152, ..., 3089.91,
3090.0624, 3090.2148])
Я могу найти соответствующие CURVE_VALUES путем интерполяции.
Я пытался использовать scipy.interpolate.interp1d для одного dim, но я хочу интерполировать массив nD по массиву 1d.
import numpy as np
from scipy import interpolate
x = np.arange(0, 10)
y = np.exp(-x/3.0)
f = interpolate.interp1d(x, y)
Я ожидаю, что результат будет той же формы: количество строк NEW_DEP x количество столбцов CURVE_VALUES