2 回答
TA贡献1806条经验 获得超5个赞
from statistics import stdev
def sd(d, column):
"""Calculates SD. Given column can be 0 or 1"""
return stdev([d[k][column] for k in d.keys()])
d = {}
with open("test.txt") as f:
for line in f:
line = line.strip().split()
if line:
d[line[0]] = (int(line[1]), int(line[2]))
calculated_sd = sd(d, 0)
这应该有效。函数的参数列可以是 0 或 1。
我所做的是读取文件并将信息存储到字典中,其中每个动物是一个键,列是与动物键相关联的元组。
顺便说一句,您应该先尝试对您的方法进行编码,然后如果它不起作用,请在此处询问,而不是直接询问代码。
TA贡献1891条经验 获得超3个赞
如果您知道如何计算标准偏差,我想您所需要的只是提取值。稍微编辑一下您的代码:
def getcolumn(filename, idx):
cval = []
with open(filename,'r') as f:
for line in f:
cval.append(line.strip().split()[idx])
return cval
这是您可以在代码中实现的功能。filename是一个带有文件名的字符串,idx您要提取的列的索引(记住索引从 0 开始)。
line.strip().split()是在列表中转换的行,因此插入要获取元素的列的索引并将其附加到cval.
调用函数:
values = getcolumn('file.txt', 1)
values是一个包含文本文件第 1 列值的列表。您可以使用它来计算标准偏差。
添加回答
举报