首页 > 解决方案 > 对字典内的列表和列表的操作

问题描述

我有一些基本上是列表形式的数据,我想计算标准偏差。

  1. 我计算了数据数组的平均值并将它们放在单独的列表中。现在要计算标准偏差,我需要从第一个列表中的所有数据点中减去第一个平均值,取一个平方,等等。

  2. 对于第二个平均值,应该对字典中的第二个列表执行相同的操作,同样对最后一个值执行相同的操作。

  3. 这些操作应该给我一个包含三个元素的列表,这些元素对应于具有各自平均值的标准偏差。

这是我尝试实现的代码,但是该代码给了我九个值,因为它遍历每个平均值的所有三个列表,但我想遍历第一个平均值的第一个列表,第二个平均值的第二个列表和很快。我需要进行哪些更改才能使其按我的意愿工作?

mean = [3,4,8]

data = {'a': [1,3,5], 
        'b': [2,4,6], 
        'c': [7,8,9]
       }

std_variation = []
for element in mean:
    variation = 0
    for value in data.values():
        for inner_element in value:
            variation += (inner_element - element)**2
        variation = variation/(len(value)-1)
        std_variation.append(round(variation,2)**0.5)
print(output)

标签: python

解决方案


有一个std内置函数numpy可以找到给定数组的标准偏差:

import numpy as np

lst = [1,2,3,4,5,6,7,8,9]
print(np.std(lst))

输出:

2.581988897471611

推荐阅读