[ Foro de Python ]
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
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"?
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.)