我正在尝试计算文件中 2 行数字的 z 分数。我已以读取模式打开文件,对数据进行 strip 化并用逗号分隔数据。现在我想使用第 3 行和第 4 行来计算 z 分数。我用于 z 分数的公式:
Zi = (observed - expected)/ sqrt(expected)
我当前的代码:
import os
from math import sqrt
observed[]
expected[]
score = 0
for line in lines:
row = line.split(',')
observed.append(row[3].strip())
expected.append(row[4].strip())
o = observed
e = expected
length_o = len(o)
length_e = len(e)
score = 0
for i in range(length_o,lenght_e):
score += (o[i] - e[i])
result = (score/(sqrt(e[i]))
最佳答案
您尚未正确实现 range
的 for 循环
。问题出在这里:
for i in range(length_o,lenght_e):
score += (o[i] - e[i])
result = (score/(sqrt(e[i]))
根据此,由于length_o == length_e
。这个循环永远不会运行。
参见范围
Documentation
这应该有帮助
for i in range(length_o):
score += (o[i] - e[i])
result = (score/(sqrt(e[i]))
关于Python 2.7,z分数计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31008775/