5

したがって、私は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:柔軟なタイプで削減を実行できません」私はそれをたくさんの方法で試しましたが、エラーが発生し続けています。これは私が試した別の方法で、有望だと思われました:

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

rightsum=np.sum(TimeSum(right))

しかし、私は同じエラーがありました。誰もこれを行う方法を知っていますか?

4

2 に答える 2

7

リストを生成し、要素を合計します。

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
于 2012-11-29T00:17:28.893 に答える
4

データ型を (はい、明示的に) 指定する必要があります。この場合は、float (または int など) です。

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

numpy.sum() には「配列のような」構造を提供する必要があることに注意してください。

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

または:

>>> np.sum([1,5,2])
8
于 2012-11-28T23:49:53.423 に答える