Необычные наны Возвращено scipy LinearNDInterpolator - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь интерполировать следующие данные с python (3.8.1), используя вышеупомянутую функцию scipy ( официальная документация здесь ; исходный код здесь ). Официальная документация невероятно редка, поэтому я надеюсь, что кто-то еще будет иметь некоторый опыт использования этой функции и может знать источник этой проблемы. В частности, я запускаю следующие четыре строки кода:

    predictor = [[-1.7134013337139833, 0.9582376963057636, -0.21528572746395735], [3.25933089248862, -0.7087236333980123, 0.012808817274351122], [-0.5596739049487544, -1.8723369742231246, 0.03114189522349198], [0.23080764211370225, 1.0639221305852422, -0.602148693975945], [-0.9879484423429669, -0.16678510825693527, 0.5570132252912631], [0.0029439785978213986, -0.10016927713200409, -0.18197412051828055], [0.3530872261969887, 0.6347161018351574, 0.7285361235605389], [-1.122894723267098, 0.22837861478723648, -0.9022469946784363], [-0.02862856314533664, 0.014623415207400122, 3.078346263312741], [-1.3367570531570616, -0.3218239542354167, 0.489878302042675]]
    respose = [0.020235605909933625, 1.4729016163456679e-05, 0.021931080605237303, 0.21271851410989498, 0.26870984350693583, 0.9577608837143238, 0.3470452852299319, 0.11918254249689647, 7.657429164576589e-05, 0.1187813551565562]
    from scipy.interpolate import LinearNDInterpolator
    away = LinearNDInterpolator(predictor, response)

Теперь, если я напишу away.__call__([0,0,0])[0], тогда python вернет 0.8208492283847619, что является желаемым результатом и является разумным значением, основанным на данные испытаний. Аналогично, away.__call__([0,0,1])[0] возвращает 0.22018657078617598, что также является разумным значением. Однако away.__call__([0,1,1])[0] возвращает nan. Что изменилось? Кто-нибудь случайно знает?

Спасибо.

1 Ответ

0 голосов
/ 19 февраля 2020

Это происходит, когда away.__call__(x) передается значение x, которое находится за пределами выпуклой оболочки - по существу, когда x лежит за пределами области интерполяции.

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