Python интерполяция - PullRequest
22 голосов
/ 29 июля 2009

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

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 и как мне действовать?

1 Ответ

30 голосов
/ 29 июля 2009

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...