如何在 python 中执行线性插值(附示例)


线性插值是估计两个已知值之间函数的未知值的过程。

给定两个已知值(x 1 , y 1 )和(x 2 , y 2 ),我们可以使用以下公式估计点x的y值:

y = y 1 + (xx 1 )(y 2 -y 1 )/(x 2 -x 1 )

我们可以使用以下基本语法在Python中执行线性插值:

 import scipy. interpolate

y_interp = scipy. interpolate . interp1d (x,y)

#find y-value associated with x-value of 13
print (y_interp( 13 ))

以下示例展示了如何在实践中使用此语法。

示例:Python 中的线性插值

假设我们在Python中有以下两个值列表:

 x = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
y = [4, 7, 11, 16, 22, 29, 38, 49, 63, 80]

我们可以快速创建 x 与 y 关系图:

 import matplotlib. pyplot as plt

#create plot of x vs. y
plt. plot (x, y, ' -ob ')

现在假设我们想要找到与新的 x 值13关联的 y 值。

我们可以使用下面的代码来做到这一点:

 import scipy. interpolate
y_interp = scipy. interpolate . interp1d (x,y)

#find y-value associated with x-value of 13
print (y_interp( 13 ))

33.5

估计的 y 值结果为33.5

如果我们将点 (13, 33.5) 添加到图中,它似乎与函数非常匹配:

 import matplotlib. pyplot as plt

#create plot of x vs. y
plt. plot (x, y, ' -ob ')

#add estimated y-value to plot
plt. plot (13, 33.5, ' ro ')

我们可以使用这个精确的公式对任何新的 x 值执行线性插值。

其他资源

以下教程解释了如何修复 Python 中的其他常见错误:

如何修复 Pandas 中的 KeyError
如何修复:ValueError:无法将 float NaN 转换为 int
如何修复:ValueError:操作数无法与形状一起广播

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注