python - 非均匀间距的 Numpy 或 SciPy 导数函数?

标签 python numpy scipy derivative

我想知道 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/

相关文章:

python - Enthought - matplotlib(plot() 函数的问题)

python - 找到多项式曲线之间交点的有效方法?

python - scipy 稀疏矩阵,复制参数

python - 尝试在 Django 中使用 Content_type 自然键加载固定装置时出现类型错误

python - 属性错误 : type object 'numpy.ndarray' has no attribute '__array_function__'

python - 如何暂停或恢复 celery 任务?

pandas - graphlab 查找至少具有一个 None 值的所有列

python - 如何为预定义函数生成随机值?

python - 如何在Python中从CSV文件中获取数据?

Python-C api并发问题