试图找到方差:浮动对象不可迭代

时间:2014-12-11 21:35:19

标签: python-2.7 sum variance

我一直在尝试用Python编写Lomb-Scargle Periodogram,但是当我尝试查找方差时出错了。当我尝试按顺序读取列表的每个值时,Python说:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "Periodogram.py", line 18, in periodogramTest
    variance = (sum(((magnitude[j]-mean)**2))/(len(magnitude)-1))   
TypeError: 'float' object is not iterable

我不确定这里的错误是否与构造列表的方式或方程本身的格式有关。这是我的代码:

import csv
import math

def periodogramTest():
    f=1/23
    omega = 2*3.14159265*f
    magnitude=[]
    with open ("hv878.csv", "rb") as csvfile:
        datareader = csv.reader(csvfile, delimiter = ",")
        for row in datareader:
            mag=row[2]
            mag=eval(mag)
            magnitude.append(mag)
    map(float, magnitude[0:343])
    mean=sum(magnitude)/343
    for j in range(len(magnitude)):
        var1 = (sum(((magnitude[j]-mean)**2))/(len(magnitude)-1))   

1 个答案:

答案 0 :(得分:0)

也许你想要这个(而不是你的for循环):

var1 = sum([(j - mean)**2 for j in magnitude])/float(len(magnitude)-1)