Encontrar la sum de una columna en una lista Obteniendo “TypeError: no se puede reducir con un tipo flexible”

Así que soy nuevo en Python y he buscado esta respuesta, pero la mayoría de las respuestas están por encima de mi cabeza. Tengo una lista como esta:

right point point 1.76999998093 right fear fear 1.62700009346 right sit sit 1.46899986267 right chord chord 1.47900009155 right speed speeed 1.71300005913 right system system 1.69799995422 right hard hard 1.4470000267 right excite excite 2.93799996376 right govern govern 1.85800004005 right record record 1.62400007248 

Estoy tratando de dividir la lista en columnas y encontrar la media / sum / desviación estándar de los números. Básicamente, solo estoy tratando de obtener lo último en un formato de matriz con el que puedo usar np.mean, np.sum, etc. Los datos están en un archivo llamado ‘correcto’. Esto es lo que tengo hasta ahora:

 right=open('right.txt').readlines() for line in right: l=line.split() righttime=l[3] print righttime rightsum=np.sum(righttime) rightmean=np.mean(righttime) 

Luego me aparece este error: “Error de tipo: no se puede reducir con el tipo flexible” Lo he intentado de muchas maneras y sigo recibiendo errores. Esta es otra forma en la que probé que me pareció prometedora:

 def TimeSum(data): for line in data: l=line.split() righttime=l[3] print righttime return righttime rightsum=np.sum(TimeSum(right)) 

Pero tuve el mismo error. ¿Alguien sabe como hacer esto?

Genera una lista y sum los elementos:

 import numpy as np right = open('right.txt').readlines() mylist = [] for line in right: l = line.split() mylist.append(float(l[3])) # add to list "mylist" rightsum = np.sum(mylist) print rightsum 

O alternativamente

 mylist = [float(line.split()[3]) for line in right] # generate numbers list print np.sum(mylist) # sum numbers 

Debe especificar (sí, explícitamente) el tipo de datos, en este caso, float (o int, ¡lo que sea!):

 rightsum = np.sum(float(righttime)) rightmean = np.mean(float(righttime)) 

Recuerde, debe proporcionar una estructura “similar a una matriz” para numpy.sum ():

 >>>import numpy as np >>> >>> mylist = [1, 5, 2] >>> a = np.asarray(mylist) >>> a.sum() 8 

Alternativamente:

 >>> np.sum([1,5,2]) 8