我一直在尝试用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))
答案 0 :(得分:0)
也许你想要这个(而不是你的for
循环):
var1 = sum([(j - mean)**2 for j in magnitude])/float(len(magnitude)-1)