我想知道 numpy 或 scipy 是否在他们的库中有一种方法来找到具有非均匀间距的值列表的数值导数。这个想法是输入与值相对应的时间戳,然后让它使用时间戳来找到数值导数。
最佳答案
您可以使用 numpy 创建自己的函数。对于使用前向差异的导数(感谢@EOL 的编辑,但请注意 NumPy 的 diff()
不是微分函数):
def diff_fwd(x, y):
return np.diff(y)/np.diff(x)
“中心”差异(不一定是中心,取决于你的数据间距):
def diff_central(x, y):
x0 = x[:-2]
x1 = x[1:-1]
x2 = x[2:]
y0 = y[:-2]
y1 = y[1:-1]
y2 = y[2:]
f = (x2 - x1)/(x2 - x0)
return (1-f)*(y2 - y1)/(x2 - x1) + f*(y1 - y0)/(x1 - x0)
其中 y
包含函数评估,x
包含相应的“时间”,这样您就可以使用任意间隔。
关于python - 非均匀间距的 Numpy 或 SciPy 导数函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25875253/