主要是记录一下,下次方便查找,原理什么的,就不赘述了。
简单的说,插值的方法有很多,基本上这个scipy库是可以满足要求的,大家可以自己去找找对于的帮助文档分析一下。这篇文章就记录两个例子,便于分析。
如果是进行一维线性插值:
f = si.interp1d(subdata['tlist'],subdata['effi'],kind='linear')
前两个参数是输入的x,y,kind是插值类型,这里选择linear。插值的结果保存在f里面,通过输入对应的x值,可以把y值给读出来:
e_map[i,j] = f(ts[j])
接着,是二维插值(这个方法更多),举例代码如下:
from scipy import interpolate
x_new=np.linspace(0,max(nlist),300)
y_new=np.linspace(min(tlist),max(tlist),300)
x_new,y_new=np.meshgrid(x_new,y_new)
new_data = interpolate.griddata((test['N'],test['T']),test['E'],(x_new,y_new),method='linear')
new_map_data = pd.DataFrame(new_data)
new_map_data.reindex(index =list(x_new),columns =list(y_new))
这个不光需要输入对应的xyz值,还顺便把输出后的对应的x,y的值给固定了(x_new,y_new),最后转换得到的是一个dataframe形式的变量,之后的操作对这个变量处理就ok。
插值的目的?作图更加平滑呀。