python - IndexError: demasiados índices para array


0 Answers

python excel csv error-handling indexing

Sé que hay una tonelada de estos hilos, pero todos son para casos muy simples como matrices 3x3 y cosas por el estilo y las soluciones ni siquiera comienzan a aplicarse a mi situación. Así que estoy tratando de graficar G versus l1 (eso no es un once, sino un L1). Los datos están en el archivo que cargué de un archivo de Excel. El archivo de Excel es 14x250, por lo que hay 14 argumentos, cada uno con 250 puntos de datos. Tenía otro usuario (¡grite a Hugh Bothwell!) Ayúdeme con un error en mi código, pero ahora ha aparecido otro error.

Así que aquí está el código en cuestión:

# 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)

Después de ejecutar todo el programa, recibo el mensaje de error:

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

y antes de encontrarme con ese problema, tuve otro que involucraba la línea unos debajo del mensaje de error mencionado anteriormente:

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

Entiendo el primer error, pero estoy teniendo problemas para solucionarlo. Sin embargo, el segundo error me resulta confuso. ¡Mi jefe realmente está respirando en mi cuello así que cualquier ayuda sería GRANMENTE apreciada!



Related