gpt4 book ai didi

python - scipy:插值,三次和线性

转载 作者:太空宇宙 更新时间:2023-11-04 08:06:10 25 4
gpt4 key购买 nike

我正在尝试插入我的数据集(第一列是时间,第三列是实际数据):

import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import interp1d

data = np.genfromtxt("data.csv", delimiter=" ")

x = data[:, 0]
y = data[:, 2]

xx = np.linspace(x.min(), x.max(), 1000)
y_smooth = interp1d(x, y)(xx)
#y_smooth = interp1d(x, y, kind="cubic")(xx)

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(xx, y_smooth, "r-")

plt.show()

但我发现线性插值和三次插值之间存在一些奇怪的差异。这是线性的结果: enter image description here

这里对于立方体也是一样的: enter image description here

我不确定,为什么图形一直在跳动并且 y_smooth 包含不正确的值?

ipdb> y_smooth_linear.max()
141.5481144
ipdb> y_smooth_cubic.max()
1.2663431888584225e+18

任何人都可以向我解释一下,我怎样才能更改我的代码以实现正确的插值?

UPD:这里是 data.cvs file

最佳答案

您的数据包含同一个 x 值的多个 y 值。这违反了大多数插值算法的假设。

丢弃具有重复 x 值的行,对每个单独的 x 的 y 值进行平均,或者为 x 值获得更好的分辨率,使它们不再相同。

关于python - scipy:插值,三次和线性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30912971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com