У меня есть набор данных, который выглядит как: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 и как продолжить?
Спасибо Alex, Честно говоря, у меня есть идеи .. Извините за плохое объяснение! для этой интерполяции и экстраполяции «Y2» i НЕ используйте значения «Y1». Но я буду хранить его как массив и использовать его дальше. Но моя функция нелинейна, можно ли использовать некоторые нелинейные методы интерполяции? (например, Newton, Lagrange type и т. д.) для лучшей точности ... Еще раз спасибо – 2009-07-29 15:15:03
NP, см. мой отредактированный ответ для указателей на scipy код, который поддерживает нелинейную интерполяцию. –
С этими конкретными значениями все результаты от 'numpy.interp' будут равны 0.11. Все данные X1 находятся за пределами диапазона данного X2, поэтому на самом деле это не совсем интрепляция. Чтобы получить значимый результат, вам нужно будет подогнать определенную параметризованную функцию к X2: Y2, а затем eval для X1 - вы можете получить очень разные результаты в зависимости от выбора функции. – greggo