首页 > 解决方案 > 索引越界错误:Python

问题描述

我有一组不平滑的数据。因此,我试图用生成的网格对其进行插值。

import numpy as np
data=np.loadtxt('test.txt')
x=data[:,0] #len(x) = 730
y=data[:,1]

Nx= len(x)
Ny=len(y)
del_x= 0.5
xn = np.linspace(0,Nx,2000)
yn = np.linspace(0,Ny,2000)

#loop 
for i in range(0,Nx-1):
 if x[i] > xn[i] and x[i] < xn[i+1]:
  new_x= (i + (xn[i] - x[i])/(xn[i]-xn[i+1]))*del_x
print new_x

我想执行基本上执行操作的循环,即:如果我的原始数据 x[i] 在两个网格点 xn[i],xn[i+1] 之间,则计算 new_x。

但我收到以下错误

Traceback (most recent call last):
 File "new.py", line 27, in <module>
  if x[i] > xn[i] and x[i] < xn[i+1]:
IndexError: index out of bound

有人可以帮我吗 ?

标签: pythonnumpy

解决方案


如果len(x) = 730比它的循环太短。您的循环迭代1000次数,i将在某个点大于730并且没有像 等这样的值x[730]x[731]您将得到一个超出范围的错误,因为您正在访问数组中不存在的值。


推荐阅读