Je suis un peu confus sur une erreur que je continue de rencontrer. Je ne l'avais pas avant, mais en même temps mes données étaient erronées, donc j'ai dû réécrire le code.Comment résoudre l'erreur Index out of bounds?
exécutant ce qui suit:
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)
Rendements ceci:
---------------------------------------------------------------------------
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
Maintenant ce que je suis en train de faire ici est de prendre essentiellement chaque ligne 4 dans le fichier lu dans calibdata et écrire à un nouveau tableau, calib [i]. Si les indices sont de la même taille, comment sont-ils hors limites? Je pense qu'il y a une logique fondamentalement erronée de ma part, donc si quelqu'un peut indiquer où je suis en retard, ce serait formidable.
lorsque i est calibdata // 4 156 il est donc i * 4 + 3 est 627 qui va lire au-delà de la fin de calibdata. –
donc je pense que vous avez besoin de i dans la gamme (0, np.size (calibdata) // 4 - 1) –