IndexError: trop d'indices pour le tableau

Je sais qu'il ya une tonne de ces fils, mais ils sont tous pour des cas très simples comme des matrices 3x3 et les choses de ce genre et les solutions ne même pas commencer à s'appliquer à ma situation. Donc, je suis en train de graphe G contre l1 (ce n'est pas onze, mais la L1). Les données sont dans le fichier que j'ai chargé à partir d'un fichier excel. Le fichier excel est 14x250 il y a donc 14 arguments, chacun avec 250 points de données. J'ai eu un autre utilisateur (shout out à Hugh Bothwell!) m'aider avec une erreur dans mon code, mais maintenant une autre erreur est apparu.

Voici donc le code en question:

# format for CSV file:
header = ['l1', 'l2', 'l3', 'l4', 'l5', 'EI',
'S', 'P_right', 'P1_0', 'P3_0',
'w_left', 'w_right', 'G_left', 'G_right']
def loadfile(filename, skip=None, *args):
skip = set(skip or [])
with open(filename, *args) as f:
cr = csv.reader(f, quoting=csv.QUOTE_NONNUMERIC)
return np.array(row for i,row in enumerate(cr) if i not in skip)
#plot data
outputs_l1 = [loadfile('C:\\Users\\Chris\\Desktop\\Work\\Python Stuff\\BPCROOM - Shingles analysis\\ERR analysis\\l_1 analysis//BS(1) ERR analysis - l_1 - P_3 = {}.csv'.format(p)) for p in p3_arr]
col = {name:i for i,name in enumerate(header)}
fig = plt.figure()
for data,color in zip(outputs_l1, colors):
xs  = data[:, col["l1"     ]]
gl = data[:, col["G_left" ]] * 1000.0    # column 12
gr = data[:, col["G_right"]] * 1000.0    # column 13
plt.plot(xs, gl, color + "-", gr, color + "--")
for output, col in zip(outputs_l1, colors):
plt.plot(output[:,0], output[:,11]*1E3, col+'--')
plt.ticklabel_format(axis='both', style='plain', scilimits=(-1,1))
plt.xlabel('$l1 (m)$')
plt.ylabel('G $(J /m^2) * 10^{ -3}$')
plt.xlim(xmin=.2)
plt.ylim(ymax=2, ymin=0)
plt.subplots_adjust(top=0.8, bottom=0.15, right=0.7)

Après l'exécution de l'ensemble du programme, j'obtiens le message d'erreur:

Traceback (most recent call last):
File "C:/Users/Chris/Desktop/Work/Python Stuff/New Stuff from Brenday 8 26 2014/CD_ssa_plot(2).py", line 115, in <module>
xs  = data[:, col["l1"     ]]
IndexError: too many indices for array

et avant que j'ai rencontré ce problème, j'ai eu un autre impliquant la ligne un peu en dessous de celle que le message d'erreur ci-dessus se réfère à:

Traceback (most recent call last): File "FILE", line 119, in <module> 
gl = data[:, col["G_left" ]] * 1000.0 # column 12 
IndexError: index 12 is out of bounds for axis 1 with size 12

Je comprends la première erreur, mais je suis tout simplement à avoir des problèmes de fixation. La deuxième erreur est source de confusion pour moi. Mon patron est vraiment respirer en bas de mon cou, de sorte que toute aide serait GRANDEMENT appréciée!

  • les tableaux sont en partant de zéro, il n'y a pas d'index 12 de 12 élément de tableau
  • Avez-vous essayé de mettre print data après for data,color in zip(outputs_l1, colors): pour voir ce que chaque ligne de données ressemble? Il me semble qu'il ne peut pas être formaté de la façon que vous attendez qu'il soit (votre conviction est qu'il va être un tableau de 14 éléments, non? regarde comme il y a des cas où il y a seulement 12 éléments)
  • quand je le "type de données d'impression" ou "impression outputs_l1' il est dit que ceux qui sont syntaxe non valide. et il y a 14 arguments afin que les deux derniers vont être n ° 12 et n ° 13, qui est ce que j'appelle pour le graphique. Et où voyez-vous des cas où il y a seulement 12? C'était mon problème avant et je pensais que je l'ai corrigé, mais j'ai peut-être raté quelque chose
  • êtes-vous à l'aide de Python 3.x? auquel cas il devrait être print(data) à la place. IndexError: index 12 is out of bounds for axis 1 with size 12 est explicite qu'il y a une ligne de données qui ne contient que 12 éléments quelque part.
InformationsquelleAutor Chris | 2015-01-20