首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中查找列表中的零交叉

在python中查找列表中的零交叉
EN

Stack Overflow用户
提问于 2013-07-16 02:31:45
回答 1查看 5.6K关注 0票数 0

我确实写了一个代码来做这件事:

代码语言:javascript
复制
for i in xrange(len(Derivative)):
    if ((Derivative[i-1] > Derivative[i]) and (Derivative[i+1] < Derivative[i]) and (Derivative[i-1] > 0.0) and (Derivative[i+1] < 0.0) and (Derivative[i] > 0.0)):
        print str(i+1)

这里的Derivative是一个列表,我必须在其中检测过零,主要是检测过零之前的值为正,过零后的值为负的那些。

为了进一步说明这个问题,我附上了Derivative的图表!

我想知道在Python中是否有更好的方法来做到这一点,我的意思是更短和精确的代码?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-16 02:45:00

你只需要将当前的导数与它后面的导数进行比较。因此,您可以删除对Derivativei-1的任何引用。如果导数大于零,而Derivativei+1小于零,那么必然是Derivativei+1 <导数。因此,您也可以删除该条件。剩下的就是:

代码语言:javascript
复制
for i in xrange(len(Derivative)-1):
    if Derivative[i] > 0 and Derivative[i+1] < 0:
        print "crossing between indexes {} and {}".format(i, i+1)

另外,我将xrange的参数缩短了一倍。否则,你会得到list index out of range

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17661317

复制
相关文章

相似问题

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