我有一個數據集,並試圖找出數據中有峯值的位置;一個數據點的值比它之前和之後的點高。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