如何在 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:操作数无法与形状一起广播