У меня есть массив чисел с плавающей запятой
x1 = [3418.008 3422.007 3424.007 3425.995 3428.026 3430.003 3539.979 3541.957
3650.041 3654.06 3656.062 3658.066 3660.019 3662.024 3664.024 3666.041
3667.985 3669.976 3672.009 3674.007 3767.969 3769.959 3771.959 3773.976
3775.975 3777.974 3779.97 3781.993 3784.002 3785.993 3787.991 3789.998
3791.997 3794.022 3882.009 3884.043 3886.036 3888.028 3890.007 3890.007
3892.015 3894.018 3895.983 3897.987 3903.978]
и одного, разной длины, целых чисел
x2 = [2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 ... 3936 3937 3938 3939 3940 3941].
Они оба представляют времена, измеренные двумя разными инструментами при разной выборке тарифы. X2 также соответствует другой массив такой же длины,
y2 =[ 9.000e-04 -1.000e-03 4.000e-04 -2.000e-03 1.000e-04 -1.600e-03 ... 1.200e-03 3.100e-03 -1.000e-03 6.000e-04]
(который также содержит нули и отрицательные числа). Это представляет переменную величину, измеренную как функция времени x2.
Я хочу получить модифицированную версию y2 так, чтобы она содержала только элементы, соответствующие значениям x2, которые являются ближайшими к ближайшему элементу x1. Если ближайший к x1 элемент x2 отрицателен, равен нулю или их разность больше, чем epsilon, то соответствующее значение в y2_mod также следует удалить.
Полагаю, это означает применение некоторой маски к x2 - x1 , получить индексы для этого или, возможно, применить ту же маску к y2?