0
我对我遇到的错误感到困惑。我之前没有,但同时我的数据是错误的,所以我不得不重新编写代码。如何解决索引超出界限的错误?
运行以下:
plt.figure(figsize=(20,10))
x = np.arange(1416, 1426, 0.009766)
gaverage = np.empty((21,1024), dtype = np.float64)
calibdata = open(pathc + 'calib_5m.dat').readlines()
#print(np.size(calibdata)) ||| Yields: 624
#print(np.size(calibdata)//16) ||| Yields: 39
calib = np.empty(shape=(np.size(calibdata)//16,1024), dtype=np.float64)
for i in range(0, np.size(calibdata)//4):
calib[i] = calibdata[i*4+3].split()
caverage = np.average(calib[i] ,axis = 0)
此息率:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-25-87f3f4739851> in <module>()
11 calib = np.empty(shape=(np.size(calibdata)//16,1024), dtype=np.float64)
12 for i in range(0, np.size(calibdata)//4):
---> 13 calib[i] = calibdata[i*4+3].split()
14 caverage = np.average(calib[i] ,axis = 0)
15
IndexError: index 39 is out of bounds for axis 0 with size 39
现在我想在这里做的是基本上都坐文件中每4个行calibdata读取和写入到一个新的数组,calib [i]。如果指数的大小相同,它们是如何超出界限的?我认为这里有一些根本上有缺陷的逻辑,所以如果任何人都能指出我缺乏的地方,那会很好。
当我是calibdata // 4它是156所以我* 4 + 3是627它将读取超过calibdata结束。 –
所以我认为你需要我在范围内(0,np.size(calibdata)// 4 - 1) –