2014-02-12 2 views
0

Когда я создаю простую математическую функцию, например .. f (X) = 2 * X using scipy.interpolate - как я могу получить X-координату соответствующая Y-координата?Как получить X-координатную Y-координату из математической функции Scipy

Здесь SciPy-функция:

from scipy import interpolate 
testfunc = scipy.interpolate.interp1d([1,2], [2,4], kind='linear') 

Я хочу, чтобы получить X-значение, принадлежащее Y = 4 (должно быть 2). Я пробовал:

testfunc.x(4) 
+1

У меня нет - у вас есть f уже, и поскольку он линейный, вы просто f_inv = x/2. ... так зачем вам это делать вместо testfunc? – wim

+0

@wim +1. Думаю, вы, вероятно, думаете о более нетривиальной проблеме, но то, как вы описали ее сейчас, немного запутанно. –

ответ

-1

I может отсутствовать пункт здесь, однако, если вы будете следовать scipy.interpolate.interp1d примеру вы будете в конечном итоге с двумя Numpy массивов одинаковой длины. Похоже, вы должны иметь возможность индексировать массив y против массива x и получать ответ. Я не знаю, считаете ли вы этот подход «pythonic», но он работает в этом случае.

0

Будет ли работать только обратная интерполяция?

x,y = ... 
testfunc_inverse = scipy.interpolate.interp1d(y, x, kind='linear') 
testfunc_inverse(4) 
Смежные вопросы