python - 如何在 Python 中执行局部多项式拟合

标签 python numpy signal-processing data-fitting derivative

我有 20 万个数据点,我正在尝试获取拟合多项式的导数。我每 0.5 K 将我的数据集分成更小的数据集,数据是电压与温度的关系。我的代码大致如下所示:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
testset=pd.read_csv('150615H0.csv',sep='\t')
x=np.linspace(1,220,219)
ub=min(testset['T(K)'])
lb=min(testset['T(K)'])-1
q={i:testset[(testset['T(K)'] < ub+i) & (testset['T(K)'] > lb+i)] for i in x}
f={j:np.polyfit(q[j]['T(K)'],q[j]['Vol(V)'],4) for j in q}
fs={k:np.poly1d(f[k]) for k in f}
fsd={l:np.polyder(fs[l],1) for l in fs}
for kk in q:
    plt.plot(q[kk]['T(K)'],fsd[kk](q[kk]['T(K)']),color='blue',linewidth=2,label='fit')

不出所料,导数是不连续的,我不喜欢它。有没有其他方法可以局部拟合多项式,同时得到连续导数?

最佳答案

看看 Savitzky-Gollay filter用于有效的局部多项式拟合。

例如,它在 scipy.signal.savgol_filter 中实现.可以使用 deriv=1 参数获得拟合多项式的导数。

关于python - 如何在 Python 中执行局部多项式拟合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31207850/

相关文章:

c - FFT bin 宽度说明

python - IntegrityError :NOT NULL constraint failed: chatapp_chat. 消息

python - 带有 r' 的变量中的路径

python - Django - 使用外键引用另一个模型的数据

python - 对于具有排序、浮点索引和列的 DataFrame,根据 DataFrame 值使用线性插值计算值

python - 如何让最难的部分在 python 中花费最长的时间

c# - 如何在C#中采样音频?

python - 如何匹配数据框中列之间的值

python - MNIST Python numpy 特征向量可视化错误

java - 安卓信号处理