有时候会碰到这种情况:
实际问题可以抽象为 \(z = f(x, y)\) 的形式,而你只知道有限的点 \((x_i,y_i,z_i)\),你又需要局部的全数据,这时你就需要插值,一维的插值方法网上很多...,不再赘述,这里仅介绍二维的插值法
这里主要利用 scipy.interpolate 包里 griddata 函数
griddata(points, values, xi, method=’linear...’, fill_value=numpy.nan, rescale=False)
points:二维数组,第一维是已知点的数目,第二维是每一个点的 \(x,y\) 坐标
values:一维数组,和 points...# 插值的目标
# 注意,这里和普通使用数组的维度、下标不一样,是因为如果可视化的话,imshow坐标轴和一般的不一样
x, y = np.mgrid[
end1:start1:step1 * 1j,...plt.colorbar()
plt.show()
np.mgrid 函数每一个维度最后一个参数:
可以是实数中的整数,表示步长,此时不包括末尾数据(左闭右开)
可以是实部为零,虚部为整数的复数,这个数字表示该区间想要插值多少个点的数据