【数据分析面试】8.计算标准差(python)

在这里插入图片描述

题目:

编写一个名为 compute_deviation 的函数,该函数接受一个包含键和整数列表的字典列表,并返回一个字典,其中包含每个列表的标准差。

注意:请勿使用 NumPy 内置函数。

示例:

输入:

input = [
    {
        'key': 'list1',
        'values': [4,5,2,3,4,5,2,3],
    },
    {
        'key': 'list2',
        'values': [1,1,34,12,40,3,9,7],
    }
]

输出:

 output = {'list1': 1.12, 'list2': 14.19}

答案

解题思路

该函数 compute_deviation 接受一个字典列表作为输入,其中每个字典包含一个键和一个整数列表。它计算每个列表的标准差,而不使用 NumPy 内置函数,并返回一个包含每个列表标准差的字典。

  1. 定义了一个名为 compute_deviation 的函数,接受一个列表作为输入。
  2. 函数内部遍历输入列表中的每个字典。
  3. 对于每个字典,提取键和对应的整数列表。
  4. 使用给定的整数列表计算其标准差,将结果存储在一个新的字典中,以当前字典中的键作为键,标准差作为值。
  5. 最后返回这个包含标准差的字典。

答案代码

# 定义一个函数,计算每个列表的标准差
def compute_deviation(input):
    # 创建一个空字典,用于存储结果
    result = {}
    # 遍历输入列表中的每个字典
    for item in input:
        # 获取当前字典中的键
        key = item['key']
        # 获取当前字典中键为'values'的值
        values = item['values']
        # 计算长度
        n = len(values)
        # 计算的平均值
        mean = sum(values) / n
        # 计算方差
        variance = sum((x - mean) ** 2 for x in values) / n
        # 计算标准差
        std_deviation = variance ** 0.5   
        # 将结果存储在结果字典中
        result[key] = std_deviation
    # 返回计算得到的结果字典
    return result


print(compute_deviation(input_data))

另一个版本的答案是导入’math’ 库,用 math.sqrt() 函数计算标准差:

  • std_deviation = math.sqrt(variance)

如果使用Numpy,直接用np.std()计算,不用另外计算平均值和方差。

import numpy as np

def compute_deviation(input):
    result = {}
    for item in input:
        key = item['key']
        values = item['values']
        std_deviation = np.std(values)
        result[key] = std_deviation
    return result

常见NumPy函数汇总

NumPy是Python中用于科学计算的重要库,提供了许多常用的计算函数。以下是一些常见的NumPy计算函数的简单总结:

  1. np.array(): 将输入数据(列表、元组、数组等)转换为NumPy数组。
  2. np.arange(): 创建一个等差数组。
  3. np.linspace(): 创建一个等间隔数组。
  4. np.zeros(): 创建一个元素全为0的数组。
  5. np.ones(): 创建一个元素全为1的数组。
  6. np.eye(): 创建一个单位矩阵(对角线元素为1,其余为0)。
  7. np.random.rand(): 生成指定形状的随机数数组(0到1之间均匀分布)。
  8. np.random.randn(): 生成指定形状的随机数数组(标准正态分布)。
  9. np.sum(): 对数组中的元素求和。
  10. np.mean(): 计算数组中元素的平均值。
  11. np.std(): 计算数组中元素的标准差。
  12. np.var(): 计算数组中元素的方差。
  13. np.min(): 找出数组中的最小值。
  14. np.max(): 找出数组中的最大值。
  15. np.argmax(): 找出数组中最大值的索引。
  16. np.argmin(): 找出数组中最小值的索引。
  17. np.transpose() 或数组.T: 返回数组的转置。
  18. np.dot(): 计算两个数组的点积(内积)。
  19. np.cross(): 计算两个数组的叉积。
  20. np.linalg.norm(): 计算数组的范数。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/512247.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CAD Plant3D 2024 下载地址及安装教程

CAD Plant3D是一款专业的三维工厂设计软件,用于在工业设备和管道设计领域进行建模和绘图。它是Autodesk公司旗下的AutoCAD系列产品之一,专门针对工艺、石油、化工、电力等行业的设计和工程项目。 CAD Plant3D提供了一套丰富的工具和功能,帮助…

哪个蓝牙耳机性价比最高?五大超值机型吐血整理,速速收藏

​在蓝牙耳机市场的众多选择中,消费者往往感到眼花缭乱,难以抉择。我作为一名测评过近百款蓝牙耳机的专家,对它们的特性有着一定了解。今天,我将向大家推荐几款我认为非常不错的蓝牙耳机。 一、好用蓝牙耳机应该这样选择&#xff…

武汉星起航:跨境电商领航者,客户成功之路的坚实后盾

武汉星起航电子商务有限公司,一家专注于亚马逊跨境电商自营与卖家孵化的领先企业,凭借深厚的行业经验和前瞻的战略布局,正迅速崛起为跨境电商领域的佼佼者。公司创始人张振邦先生,一位在电子商务行业深耕多年的资深专家&#xff0…

朗之万方程,机器学习与液体中的粒子运动

目录 一、说明二、朗之万方程的诞生2.1 牛顿力学2.2 流体中的随机运动 三、小质量物体布朗运动方程四、布朗运动的Python代码五、稳定性讨论5.1 波尔兹曼分布5.2 梯度下降算法 六、随机梯度下降(SGD)和小批量梯度下降七、机器学习与物理,作为…

Centos8/linux/虚拟机安装docker

docker分为ce版和ee版,个人使用ce版就行了,别问为什么,问就是ee版收费。 这是在线版的,离线版的请参考Centos8离线下载安装docker 1.首先切换到root用户 2.为确保安装时出现不必要的问题,先更新一下yum包 sudo yum…

【turtle海龟先生】神奇的“圆”,画,太极圈,铜钱古币

turtle画圆三步法 步骤: 1、导入turtle库 2、确定半径,画圆(circle ) 3、结束(done ) turtle 库中提供一个直接画圆的函数 turtle.circle(半径)#半径单位为像素 例: turtle.circle ( 100 ) 表示绘制一个半径为100像素长度的圆形 …

面试题 之 vue

1.vue里怎样实现双向数据绑定? Viewmodel 中的Domlisteners 工具会帮我们检测页面上Dom元素的变化,如果有变化,则更改Model中的数据,更新model中的数据时,数据事件绑定工具会帮我们更新页面中的Dom元素 2.Vue的响应式原…

3个 JavaScript 字符串截取方法

在 JavaScript 中,可以使用 substr()、slice() 和 substring() 方法截取字符串. substring() substring() 方法返回一个字符串在开始索引到结束索引之间的一个子集,或从开始索引直到字符串的末尾的一个子集。语法如下: str.substring(inde…

【linux】lsof命令使用

1. 功能 lsof list open files, 列出被进程所使用的文件名称。 2. 基础语法 3. 参数含义 参数含义-a过滤出多个选项要同时满足的文件-U仅列出UNIX-like系统的socket文件类型。-u指定用户,比如-u atiaisi,会把用户atiaisi相关的进程使用的文件列出来。…

华为OD面试手撕算法-合并排序数组

题目描述 本题是leetcode一道简单题:合并两个有序数组,但是对于时间和空间复杂度面试官明确给出了限制。 // 给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法,将 B 合并入 A 并排序。 // 初始化…

【解决问题】排查linux文件手动删除文件,但是文件标记为deleted,资源未释放

背景: 生产环境我们把程序生成的数据文件手动删除后,但是空间并没有释放,导致硬盘被占用,不够用 问题排查: 1.查看占用文件状态 使用命令: lsof | grep deleted 查看 文件已经删除了,但是都是…

element-ui tableData导出为xlsx文件

下载 npm i / yarn add file-saver、xlsx库 引入 import FileSaver from “file-saver”; import XLSX from “xlsx”; const simexport (data) > {// if (data.create_time && data.create_time.length > 0) {// data.start_time parseTime(data.create_tim…

蓝桥杯相关算法学习(Python)

一、排序 排序算法是指将一组数据按照某种规则重新排列,使得数据呈现出递增或递减的顺序。常见的排序算法包括冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等。 1.冒泡排序 解释: 冒泡排序通过不断交换相邻两个元素的位置,使…

JavaScript中什么叫深拷贝?

在 JavaScript 中,深拷贝指的是创建一个新的对象,这个新的对象与原始对象完全独立,没有任何共享的属性或者数据,它们不共享同一块内存地址。深拷贝会复制原始对象的所有属性和嵌套对象的所有属性,包括嵌套对象中的属性…

golang语言系列:学习路线图

云原生学习路线导航页(持续更新中) 本文是 golang语言系列 文章,主要展示golang语言学习的全路线图 参考:https://github.com/darius-khll/golang-developer-roadmap/blob/master/i18n/zh-CN/ReadMe-zh-CN.md

[NSSRound#8 Basic]MyPage

[NSSRound#8 Basic]MyPage 打开页面后什么都没有 尝试使用php伪协议 //读取文件源码 filephp://filter/readconvert.base64-encode/resourceindex.php 显示:空白一片 filephp://filter/readconvert.base64-encode/resource/var/www/html/index.php 显示&#xff1…

【SQL Server】1. 认识+使用

1. 创建数据库的默认存储路径 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft SQL Server 2008 R2 当我们选择删除数据库时,对应路径下的文件也就删除了 2. 导入导出数据工具的路径 3. 注册数据库遇到的问题 ??? 目前的问题就是服务器新建…

组合总和-java

题目描述: 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重复被…

孙崧-回归祖国的数学天才谈国外学习研究感受

孙崧,这位37岁的美国加州大学伯克利分校数学系教授,今年正式回归祖国,担任浙江大学数学高等研究院杜建英讲席教授、博士生导师。在此,知识人网小编就经历过国外就读、从事博士后研究及任教的这位数学天才是怎么说的,或…

世优科技上榜2024年度《中国虚拟数字人影响力指数报告》

日前,第三期《中国虚拟数字人影响力指数报告》在中国网络视听大会上正式发布。本期《报告》由中国传媒大学媒体融合与传播国家重点实验室(以下简称“国重实验室”)、中国传媒大学数字人研究院编制,中国网络视听协会、人民日报智慧…