Существует ли простая команда python 3, которая реплицирует команду interlap matlab на несколько столбцов?
data_1 содержит два параметра (1 на столбец), которые go с вектором времени time_1 (data_1 - 5 массивом 2, который фактически не используется в этом примере, поэтому его можно игнорировать)
data_2 содержит два параметра (1 на столбец), которые go с вектором времени time_2
import numpy as np
data_2 = np.array([ [ 0.43, -0.54], [ 0.32, -0.83], [ 0.26, -0.94], [ 0.51, -0.69], [ 0.63, -0.74] ])
time_1 = np.array([ 399.87, 399.89, 399.91, 399.93, 399.95 ])
time_2 = np.array([ 399.86, 399.88, 399.90, 399.92, 399.94 ])
Я хотел бы интерполировать двумерный массив data_2 в вектор времени time_1, чтобы оба набора данных имели один и тот же вектор времени.
Желаемый результат (который является просто np.interp двух столбцов data_2 в time_1 вектор времени и объединенный обратно в массив):
data_2_i = np.array([[ 0.375, -0.685], [ 0.290, -0.885], [ 0.385, -0.815], [ 0.570, -0.715], [ 0.630, -0.740]])
Фактические массивы будут содержать приблизительно 20 столбцов (параметров) и тысячи строк (более длинный временной диапазон).
Я знаю, что вы можете просто l oop для каждого столбца с помощью np.interp, но я надеялся, что есть более компактный и быстрый python 3 (numpy, scipy, pandas, et c.) Метод, который я не смог Трек Доу п еще. Я все еще довольно новичок в python (более знаком с matlab).
В matlab вы можете просто использовать interp1 для всего многостолбцового массива, чтобы получить результат из нескольких столбцов (хотя крайние случаи обрабатываются немного по-другому - NaN против последней записи в этом примере - меня не волнуют различия в крайнем случае).