python - 对字典内的列表和列表的操作
问题描述
我有一些基本上是列表形式的数据,我想计算标准偏差。
我计算了数据数组的平均值并将它们放在单独的列表中。现在要计算标准偏差,我需要从第一个列表中的所有数据点中减去第一个平均值,取一个平方,等等。
对于第二个平均值,应该对字典中的第二个列表执行相同的操作,同样对最后一个值执行相同的操作。
这些操作应该给我一个包含三个元素的列表,这些元素对应于具有各自平均值的标准偏差。
这是我尝试实现的代码,但是该代码给了我九个值,因为它遍历每个平均值的所有三个列表,但我想遍历第一个平均值的第一个列表,第二个平均值的第二个列表和很快。我需要进行哪些更改才能使其按我的意愿工作?
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)
解决方案
有一个std
内置函数numpy
可以找到给定数组的标准偏差:
import numpy as np
lst = [1,2,3,4,5,6,7,8,9]
print(np.std(lst))
输出:
2.581988897471611
推荐阅读
- vb.net - VB.NET 如何更新 MSProject 的甘特图值显示
- amazon-web-services - 可使用带有 http 的 Elastic Beanstalk URL 访问网站
- network-programming - 使用 ping 计算本地网络中两台计算机之间的距离
- yolo - Darknet + YOLO4 = cuBLAS 状态 win10 出错?
- jwt - 登录密钥斗篷后撤销刷新令牌
- reactjs - 如何渲染从 API ReactJS 获取的单个项目
- javascript - 如何使用交叉点观察器观察元素的顶部和底部
- rabbitmq - Masstransit RabbitMq 自动删除仲裁队列
- flutter - 屏幕上的内容每次都成倍增加,屏幕正在初始化(SQLite,颤振)
- python - 如何更改三元图的轴刻度顺序?