Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查找列表中某列的和得到;TypeError:无法使用“灵活类型”执行reduce;_Python_Numpy_Sum_Typeerror_Flexible Type - Fatal编程技术网

Python 查找列表中某列的和得到;TypeError:无法使用“灵活类型”执行reduce;

Python 查找列表中某列的和得到;TypeError:无法使用“灵活类型”执行reduce;,python,numpy,sum,typeerror,flexible-type,Python,Numpy,Sum,Typeerror,Flexible Type,因此,我对python还不熟悉,并且一直在寻找这个答案,但大多数的回答都是我无法理解的。我有这样一份清单: 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 h

因此,我对python还不熟悉,并且一直在寻找这个答案,但大多数的回答都是我无法理解的。我有这样一份清单:

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
我正在尝试将列表拆分为列,并找到数字的平均值/总和/标准偏差。所以基本上我只是想把最后一个变成一个数组形式,我可以用np.mean,np.sum,等等。数据保存在一个名为“right”的文件中,这是我目前掌握的:

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)
然后我得到了这个错误:“TypeError:CannotperformedreducewithflexibleType”我已经尝试了很多种方法,并且不断地得到错误。这是我尝试的另一种似乎很有希望的方法:

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

rightsum=np.sum(TimeSum(right))
但我也犯了同样的错误。有人知道怎么做吗?

您应该指定(是的,明确地)数据类型,在本例中为float(或int,随便什么!):

请记住,必须为numpy.sum()提供一个结构“类似数组”:

或者:

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

生成一个列表并对元素求和:

或者,或者

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

我想这也是我问题的一部分。我现在已经隔离了数字列,但它们不是结构化的:1.06500005722 1.2790004387 1.29099988937 1.64499998093 1.86100006104 1.35100007057 2.07699990273 1.5499995232 1.58100008965它只是数字的垂直列。我试过做r=np.array(列表)和r=np.asarray(列表)等。运气不好,我只是在尝试求和和和平均值时不断出错。你想求所有数字的和吗?@EvanBrown想都别想!;)
>>> np.sum([1,5,2])
8
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
mylist = [float(line.split()[3]) for line in right] # generate numbers list
print np.sum(mylist) # sum numbers