Python |如何插值两个测量值以使x值相同

Python |如何插值两个测量值以使x值相同,python,interpolation,Python,Interpolation,我有两个测量值,由x和y值对组成。我想计算这两个系列之间的差异。问题是我不能简单地计算这两个测量值之间的差异,因为它们在x值中的采样方式不同 import numpy as np import pandas as pd import matplotlib.pyplot as plt x1 = np.array([1, 2, 3, 4, 5]) y1 = np.array([1, 4, 9, 16, 25]) x2 = np.array([1.5, 2.5, 3.3, 4.2, 5.1]) y2

我有两个测量值,由x和y值对组成。我想计算这两个系列之间的差异。问题是我不能简单地计算这两个测量值之间的差异,因为它们在x值中的采样方式不同

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

x1 = np.array([1, 2, 3, 4, 5])
y1 = np.array([1, 4, 9, 16, 25])
x2 = np.array([1.5, 2.5, 3.3, 4.2, 5.1])
y2 = np.array([1.3, 2.5, 3.3, 4.2, 5.1])
df = np.array([x1, y1, x2, y2])
df = pd.DataFrame(df.T, columns=['x1', 'y1', 'x2', 'y2'])
df.head()

plt.plot(df.x1.values, df.y1.values, df.x2.values, df.y2.values)
我想分配一个新变量x=np.linspace0,5100,endpoint=True,然后通过在x的值上插值y1和y2来确定新的y1_new和y2_new

我看过pandas.resample,但这似乎与时间戳有关。也许“scipy.interpolate”会有所帮助,但我不确定它的功能。原则上,我知道如何用python手工编程,但我确信我的问题已经有了解决方案。

使用scipy.interpolate的示例如下:

导入scipy.interpolate作为interp 将numpy作为np导入 x1=np.数组[1,2,3,4,5] y1=np.数组[1,4,9,16,25] new_x1=np.linspace0,5100,端点=True 内插_1=内插。内插1dx1,y1,填充_值=外推 new_y1=插值的_1new_x1 新的 正如您在中看到的,所有其他方法或多或少都遵循相同的签名。使用哪一个取决于您拥有的底层数据,例如,第一个看起来像二次曲线,第二个看起来像恒等式