Подтвердить что ты не робот

Интерполяция Python

У меня есть набор данных, который выглядит так:

Table-1 
    X1    | Y1
    ------+--------
    0.1   | 0.52147
    0.02  | 0.8879 
    0.08  | 0.901
    0.11  | 1.55 
    0.15  | 1.82
    0.152 | 1.95

Table-2
    X2   | Y2
    -----+------
    0.2  | 0.11
    0.21 | 0.112
    0.34 | 0.120  
    0.33 | 1.121       

Мне нужно интерполировать значение Y2 из таблицы-2 для значений X1 из таблицы-1, то есть мне нужно найти значения Y2 для следующих значений X:

    X1     |  Y2
    -------+-------
    0.1    |
    0.02   |
    0.08   |
    0.11   |
    0.15   |
    0.152  |

Примечание. Обе таблицы-1 и 2 имеют неравные интервалы. Количество записей (X, Y) будет отличаться, например, здесь мы имеем 6 (X1, Y1) записей в таблице-1 и только 4 (X2, Y2) в таблице 2.

Какой алгоритм интерполяции следует использовать в Numpy, и как это сделать?

4b9b3361

Ответ 1

numpy.interp кажется желаемой функцией: передайте X1 как первый аргумент x, ваш X2 как второй аргумент xp, ваш Y2 в качестве третьего аргумента fp, и вы получите значения Y, соответствующие координатам X1.

Y2_at_X1 = np.interp(X1, X2, Y2)

Я предполагаю, что вы хотите полностью игнорировать существующие значения Y1. Это то, что делает вышеприведенный фрагмент. В противном случае вам нужно будет уточнить свой вопрос, чтобы объяснить, какую роль вы могли бы иметь для Y1!

Если вы хотите более чем линейную интерполяцию, я предлагаю вам посмотреть scipy.interpolate и tutorial, а не пытаться растягивать numpy за его простотой; -).