我有一个数据集,并试图找出数据中有峰值的位置;一个数据点的值比它之前和之后的点高。Python列表索引超出范围 - 查找本地最大值
我有代码适用于一个数据集,但现在将其转移到另一个数据集会导致索引超出某些行的范围错误。
我的代码是:
for line in file.readlines():
peaks.append(0)
line = line.split(',')
time.append(float(line[0]))
TP.append(float(line[3]))
level.append(float(line[5]))
for i in range(len(level)-1):
i = i + 1
if (level[i] > level[i-1]) and (level[i] > level[i+1]):
peaks[i] = 1
noPeaks = noPeaks +1
print noPeaks
然而,对于一个线(迄今为止)它说的数据是超出范围 - 目测观察的数据并不表明这一点 - 价值比以前更高价值但低于下一个图表的上升。
任何帮助将是伟大的!
告诉我们所有的代码。你如何定义'我'? – 2012-03-19 12:46:20
您好像试图访问列表末尾的索引。如果'i'到达最后列表项的索引,'level [i + 1]'将尝试访问不存在的列表项。请展示整个循环! – 2012-03-19 12:47:24
当你有'level [i-1]'和'level [i + 1]'时,当'i'是'0'或'len(level)-1'(即最大索引)时会发生什么? – 2012-03-19 12:49:03