探索数值分析的奥秘:掌握NumPy与Pandas基础

 

 新书上架~👇全国包邮奥~

python实用小工具开发教程icon-default.png?t=N7T8http://pythontoolsteach.com/3

 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~

目录

一、NumPy:数值计算的效率提升器

二、Pandas:数据处理与分析的利器

三、实战演练:NumPy与Pandas的联合应用


一、NumPy:数值计算的效率提升器

在数据分析与科学计算的世界里,NumPy是一个不可或缺的工具。通过NumPy,我们可以轻松创建和操作多维数组,提高数值计算的效率。从数组的基本操作到高级统计分析,NumPy都为我们提供了丰富的功能。

  • 创建数组:NumPy提供了多种创建数组的方法,如使用numpy.array()从现有数据创建,或者使用numpy.zeros(), numpy.ones(), numpy.eye()等函数创建特定类型的数组。
  • 数组操作:NumPy支持各种数组级别的运算,如元素级运算、广播机制下的运算等,大大简化了数值计算的过程。
  • 统计分析:NumPy还提供了丰富的统计函数,如求均值、标准差、方差等,帮助我们更好地理解数据分布。

二、Pandas:数据处理与分析的利器

Pandas是基于NumPy构建的一个数据分析库,它提供了数据结构和分析工具,使数据处理变得更加简单高效。无论是数据清洗、转换还是可视化,Pandas都能帮助我们轻松完成。

  • 数据结构:Pandas提供了两种主要的数据结构——DataFrame和Series,它们分别用于存储表格型数据和一维数组型数据。
  • 数据操作:Pandas提供了丰富的数据操作功能,如数据选择、排序、分组、连接等,使我们能够轻松地进行数据处理。
  • 数据可视化:Pandas还支持与各种可视化库(如Matplotlib、Seaborn等)的集成,使我们能够轻松地将数据转化为图表,更直观地展示数据。

三、实战演练:NumPy与Pandas的联合应用

    NumPy和Pandas是Python数据分析中非常重要的两个库。NumPy提供了高效的数值计算能力,而Pandas则提供了强大的数据处理和分析功能。下面,我们将通过一个实战演练来展示NumPy与Pandas的联合应用。

    假设我们有一个数据集,包含了某公司员工的工资信息,包括员工ID、姓名、部门、基本工资、奖金等字段。我们将使用这个数据集来进行一系列的数据处理和分析。

    首先,我们需要导入NumPy和Pandas库,并读取数据集:

import numpy as np  
import pandas as pd  
  
# 读取CSV文件  
data = pd.read_csv('employee_salary.csv')

    接下来,我们可以使用Pandas对数据进行一些基本的处理,比如查看数据的前几行、描述性统计等:

# 查看数据的前5行  
print(data.head())  
  
# 查看数据的描述性统计信息  
print(data.describe())

    现在,假设我们想要对数据集进行一些更复杂的处理。比如,我们想要计算每个部门的平均工资和最高工资,并将结果按照工资从高到低排序。这可以通过Pandas的分组(groupby)和聚合(agg)功能来实现:

# 按照部门分组,并计算平均工资和最高工资  
department_stats = data.groupby('部门')[['基本工资', '奖金']].agg(['mean', 'max'])  
  
# 将结果按照平均工资从高到低排序  
department_stats_sorted = department_stats.sort_values(('基本工资', 'mean'), ascending=False)  
  
print(department_stats_sorted)

    接下来,我们可以使用NumPy来进行一些数值计算。比如,我们想要计算所有员工的总工资(基本工资+奖金)的标准差:

# 计算总工资列  
data['总工资'] = data['基本工资'] + data['奖金']  
  
# 使用NumPy计算标准差  
std_dev = np.std(data['总工资'])  
  
print(f"总工资的标准差为: {std_dev}")

    最后,我们可以使用Pandas和NumPy联合进行更复杂的数据分析。比如,我们想要找出总工资高于平均工资加一倍标准差的员工:

# 计算平均工资和标准差  
mean_salary = data['总工资'].mean()  
std_salary = data['总工资'].std()  
  
# 找出总工资高于平均工资加一倍标准差的员工  
high_salary_employees = data[data['总工资'] > mean_salary + std_salary]  
  
print(high_salary_employees)

    这个实战演练展示了NumPy与Pandas的联合应用,在数据处理和分析中发挥了强大的作用。通过这两个库的联合使用,我们可以轻松地进行数据清洗、转换、聚合和数值计算等操作。 

 非常感谢您花时间阅读我的博客,希望这些分享能为您带来启发和帮助。期待您的反馈与交流,让我们共同成长,再次感谢!

👇热门内容👇 

python使用案例与应用_安城安的博客-CSDN博客

软硬件教学_安城安的博客-CSDN博客

Orbslam3&Vinsfusion_安城安的博客-CSDN博客

网络安全_安城安的博客-CSDN博客

教程_安城安的博客-CSDN博客

python办公自动化_安城安的博客-CSDN博客

👇个人网站👇

安城安的云世界

 

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

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

相关文章

【真人Q版手办风】线稿手绘+ AI绘图 Stable Diffusion 完整制作过程分享

大家好,我是设计师阿威。 今天给大家分享一篇【真人Q版卡通手办】风格的制作过程,话不多说,进入正题。 成品预览 手绘线稿 首先,我使用的是老款手绘软件【SAI】,用[钢笔工具]进行了人物的线稿Q版描绘。&#x1f447…

每周刷题第二期

个人主页:星纭-CSDN博客 系列文章专栏:刷题 踏上取经路,比抵达灵山更重要!一起努力一起进步! 目录 一.选择题 1. 2. 二.编程题 1.添加逗号 方法一:递归 方法二:迭代 2.删除公共字符 3…

后端之路第二站(正片)——SprintBoot之:设置请求接口

这一篇讲怎么简单结合模拟云接口,尝试简单的后端接接口、接受并传数据 一、下载Apifox接口文档软件 目前的企业都是采用前后端分离开发的,在开发阶段前后端需要统一发送请求的接口,前端也需要在等待后端把数据存到数据库之前,自己…

.NET快速实现网页数据抓取

网页数据抓取需求 本文我们以抓取博客园10天推荐排行榜第一页的文章标题、文章简介和文章地址为示例,并把抓取下来的数据保存到对应的txt文本中。 请求地址:https://www.cnblogs.com/aggsite/topdiggs 创建控制台应用 创建名为DotnetSpiderExercise的控…

Sentinel的授权规则详解

文章目录 1、授权规则1.1、基本规则1.2、如何获取origin1.3、给网关添加请求头1.4、配置授权规则 2、自定义异常结果2.1、异常类型2.2、自定义异常处理 🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学…

python web自动话(⽂件上传和⽇期控件)

1.⽂件上传操作-input标签⽂件选择 我们有如下的文件上传的联系网站,我们可以定位到选择文件,但是点击选择文件无法定位到 我们可以看到这个选择文件的标签是input 我们直接使用send_keys进行图片上传 """""" import timefrom selenium import w…

D-Insar操作全程记录

前言 本实例ENVI版本5.6 裁剪 使用工具: 第一个界面: 输入基于上述两个文件画的研究区域。参考文件选择标准:area.shp是基于那个图像画的就选哪个。因为哨兵1的坐标不是地理坐标,故基于哨兵1话的shp需要选择参考影像。如果是…

STM32HAL(四)中断与NVIC解析

目录 中断 中断作用与意义 NVIC 中断向量表 基本概念 功能和作用 NVIC工作原理 STM32中断优先级 1. 优先级分组 2. 优先级设置 3. 中断服务程序执行顺序 4. 配置方法 STM32 NVIC的使用 1,设置中断分组 2,设置中断优先级 3,使…

vue使用driver.js引导并自定义样式和按钮

参考网址https://driverjs.com/docs/installation 安装 npm install driver.js 以下是1.3.1版本的基本使用方法 import { driver } from driver.js import driver.js/dist/driver.css mounted() {// 实例化driver对象const driverObj driver({showProgress: true,steps: …

【mysql】【docker】mysql8-互为主从

🌸🌸 Linux/docker-compose/mysql8 互为主从 优雅部署 🌸🌸 记录下两台Linux的mysql需要热备份,互为主从,后期加上keepalived实现高可用切换 参考博客:答 案 🌸 一、准备文件 这里…

一文了解基于ITIL的运维管理体系框架

本文来自腾讯蓝鲸智云社区用户:CanWay ITIL(Information Technology Infrastructure Library)是全球最广泛使用的 IT 服务管理方法,旨在帮助组织充分利用其技术基础设施和云服务来实现增长和转型。优化IT运维,作为企业…

k8s node NotReady后会发生什么?

K8s 是一种强大的容器编排和管理平台,能够高效地调度、管理和监控容器化应用程序;其本身使用声明式语义管理着集群内所有资源模型、应用程序、存储、网络等多种资源,Node 本身又属于 K8s 计算资源,上面承载运行着各种类型的应用程…

141.字符串:重复的字符串(力扣)

题目描述 代码解决 class Solution { public:// 计算字符串s的next数组&#xff0c;用于KMP算法void getNext(int *next, const string& s){int j 0; // j是前缀的长度next[0] 0; // 初始化next数组&#xff0c;第一个字符的next值为0for (int i 1; i < s.size(); …

TAS5711带EQ和DRC支持2.1声道的20W立体声8V-26V数字输入开环D类数字功放音频放大器

前言 数字功放很难搞&#xff0c;寄存器很多&#xff0c;要配置正确才有声音&#xff0c;要想声音好&#xff0c;要好好调整。 TAS5711出道很多年了&#xff0c;现在仍然在不少功放、音箱中能看到。 TAS5711特征 音频输入/输出 从 18V 电源向 8Q 负载提供 20W 功率 宽 PVDD…

深度学习之Tensorflow卷积神经网络手势识别

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 手势识别是计算机视觉和人工智能领域的重要应用之一&#xff0c;具有广泛的应用前景&#xff…

常用生物信息学服务器推荐

1、超强性能&#xff0c;AMD 256核心&#xff0c;512线程&#xff0c;2.5TB满通道内存&#xff0c;200T硬盘 CPU&#xff1a;2颗128核心 2.25GHz AMD EPYC 9754 内存&#xff1a;24根96GB DDR5 4800MHz ECC REG 硬盘&#xff1a;1块1TB U.2 SSD系统盘1块15.36TB U.2热数据盘…

2024 年 电工杯(A题)大学生数学建模挑战赛 | 园区微电网风光储协调| 数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题。 CS团队倾注了大量时间和心血&#xff0c;深入挖掘解决方案。通…

pip换源ubuntu

到THU网站上有给定的教程 https://mirrors.tuna.tsinghua.edu.cn/help/pypi/ 方法1 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package然后在https://pypi.org/project/nvidia-cublas-cu12/#files 里面搜索你的包名 方法2 python -m pip install --upg…

计算机毕业设计python+django医院住院挂号登记收费系统7ui9s

在该医院信息管理系统中&#xff0c;python技术可以给用户带来极大方便&#xff0c;其主要特点就是可以使用户学习起来方便、快捷&#xff0c;另一方面就是信息储存量也是非常大的&#xff0c;该功能主要被应用为数据库中进行查询和编程。并且该功能的数据应用比较灵活&#xf…

JVM优化之使用Jstack命令查找JVM死锁

JVM优化之使用Jstack命令查找JVM死锁 示例代码 public class DeadLockDemo {private static Object lock1 new Object();private static Object lock2 new Object();public static void main(String[] args) {new Thread(() -> {synchronized (lock1) {try {System.out.p…