[ Foro de Python ]

No puedo sumar los elementos de una lista

03-Feb-2020 03:12
Invitado (Natalia)
2 Respuestas

Que tal gente, soy nueva programando y estoy teniendo un problema con mi codigo . Mi codigo me develve al finalizar una lista de vectores que llamo "N", necesito crear un nuevo vector donde guarde la suma de elementos de cada vector de N. El problema es que no puedo usar la funcion sum() por alguna razon que no comprendo

tmax=2
PR=5
N=np.zeros((tmax,PR+1),dtype=int)
N[0,0]=1
Nt=[1]
for t in range(1,tmax):
#while Nt[]  <3:    
   for i in range(0,PR):
       N[t,i]=N[t-1,i+1]
   N[t,0]+=N[t-1,0]
   for n in range(0,N[t,0]):
       x=random.random()
       if x<1:
           N[t,PR]+=2
           N[t,0]-=1
           for l in N:
               Nt.append((sum(l)))



y el error que aparecce es este:



---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-50-518234ea49e5> in <module>
    17             N[t,0]-=1
    18             for l in N:
---> 19                 Nt.append((sum(l)))
    20
    21 #print(N)

TypeError: 'int' object is not callable


Desde ya muchas gracias y espero su ayuda


03-Feb-2020 08:11
Nacho Cabanes (+84)

Prueba a simplificar para reducir el problema: deja sólo la parte que declara la matriz bidimensional, la que la rellena y la que la recorre, para que el error sea más evidente.

Algunas ideas: ¿Seguro que puedes recorrer un array bidimensional con un "for"?  ¿Qué esperas extraer: filas, columnas o posiciones individuales? Falta el principio de tu programa, pero imagino que estás usando "numpy", por el "np.zeros" (¿falta un "import numpy as np"?). En ese caso, ¿tu suma no debería ser "np.sum"?


27-Feb-2020 01:14
Invitado (Gulliver)

Prueba a introducir un breakpoint() antes del error, y en el debugger compruebas los valores de las variables, incluyendo las funciones.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)