首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >numpy.diff的输出错误

numpy.diff的输出错误
EN

Stack Overflow用户
提问于 2017-03-12 00:26:38
回答 1查看 1.8K关注 0票数 0

这就是我的问题:我试图使用numpy.gradient来计算(数值)导数,但我发现函数numpy.diff (以及numpy )返回的值存在一些问题。我发现这些值是完全错误的!下面是一个代码示例:

代码语言:javascript
运行
复制
import numpy as np
x = np.linspace(-5, 5, 1000)
y = x**2
yDiff = np.diff(y)
print y[0], yDiff[0]

此脚本的输出为:

代码语言:javascript
运行
复制
25.0 -0.0999998997997

在第一个值正确的地方,第二个值恰好比它应该的值小100倍(考虑到近似值)!我做了不同的尝试,这不是一个与函数边界有关的问题,这100个因素似乎是系统化的……这可能与np.diff正在做的一些标准化有关吗?或者,也许我只是错过了一些重要的东西而没有注意到?谢谢你的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-12 00:34:12

np.diff不计算导数,它只计算有限差分;你必须自己计算间距。试一试

代码语言:javascript
运行
复制
np.diff(y) / (x[1] - x[0])

顺便说一句,np.linspace有一个retstep关键字,这个关键字在这个上下文中很方便:

代码语言:javascript
运行
复制
x, dx = np.linspace(-5, 5, 100, retstep=True)
...
np.diff(y) / dx
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42737619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档