假设我有
t= [0,7,10,17,23,29,31]
f_t= [4,3,11,19,12,9,17]
我画了f_t vs t。
现在通过绘制这7个数据点,我想检索100个数据点并将它们保存在文本文件中。我该怎么办?
请注意,我并不是在询问情节的拟合情况;我知道两点之间的情节是线性的。
我在问什么如果我创建一个像t=np.arange(0,31,.1)
这样的数组,那么f_t的相应数组与前一个图是一致的,即对于t = 0到t = 7之间的任何t,f_t将通过使用连接(0,4)和(7,3)的直线来确定,等等。
答案 0 :(得分:2)
你应该使用线性回归,它给你一个直线公式,你可以在其中掌握任意数量的点。
如果这条线更像是一条曲线,那么你应该尝试进行更高程度的多项式回归。
即:
import pylab
import numpy
py_x = [0,7,10,17,23,29,31]
py_y = [4,3,11,19,12,9,17]
x = numpy.asarray(py_x)
y = numpy.asarray(py_y)
poly = numpy.polyfit(x,y,1) # 1 is the degree here. If you want curves, put 2, 3 or 5...
poly现在是可以用来计算其他点的多项式。
for z in range(100):
print numpy.polyval(poly,z) #this returns the interpolated f(z)
答案 1 :(得分:1)
函数np.interp
将在您的数据点之间进行线性插值:
f2 = np.interp(np.arange(0,31,.1), t, ft)