2017-01-09 6 views
0

Есть ли способ помимо графической функции calltip для получения неизвестных значений x из y? Как мне пойти на кодирование ввода(), чтобы получить неизвестное значение x?Как улучшить скрипт на основе scipy для интерполяции. Получение неизвестных значений x

import numpy as np 
from scipy import interpolate 

x = np.linspace(0, 20, 5) 
x = np.array([0. , 5. , 10., 15., 20.]) 

y = np.linspace(0.422,0.948, 5, endpoint =False) 

y = np.array([0.422, 0.5513, 0.66433, 0.83433, 0.948]) 

f = interpolate.interp1d(x,y) 
ynew = np.arange(0,1, 0.1) 
import matplotlib.pyplot as plt 
plt.figure() 
plt.plot(x,y,'o', ynew,f(ynew), '-') 
+0

Помогает ли документация для функции 'input', которая встроена в Python? https://docs.python.org/3/library/functions.html#input Если нет, вы можете искать вокруг, как его использовать, это, вероятно, дубликат, если это ваш вопрос. В противном случае, пожалуйста, уточните, что вы хотите сделать. – darthbith

+0

Я хочу ввести неизвестное значение и вернуть соответствующее значение из моей стандартной кривой (т. Е. My x = и y = np.arrays) – applestooragnes

+0

Затем выполняются ли документы 'input'? – darthbith

ответ

0

Here является ссылкой на видео APmonitor, у которого было решение. См. Скрипт ниже:

from numpy import * 
x = array([0,5,10,15,20]) 
y = array ([0.422,0.551333,0.66433,0.834333,0.948]) 

from scipy.interpolate import * 
p1 = polyfit(x,y,1) 

from matplotlib.pyplot import * 

print(p1) 

plot(x,y,'o') 

plot(x,polyval(p1,x),'r-') 

from scipy import * 
slope, intercept, r_value, p_value,std_err = linregress(x,y) 
print(pow(r_value,2)) 

print(p_value)