当前位置: 首页 > article >正文

Python数据分析三剑客:NumPy、Pandas与Matplotlib安装指南与实战入门

Python数据分析三剑客:NumPy、Pandas与Matplotlib安装指南与实战入门

在这里插入图片描述


1. 引言

  • Python数据分析生态:NumPy、Pandas、Matplotlib是数据科学领域的核心工具链。
  • 适用场景:数值计算、数据处理、可视化分析(如金融分析、机器学习、科研绘图)。
  • 本文目标:快速掌握三大库的安装方法、核心功能及基础实战应用。

2. 环境安装与配置

安装方法(推荐使用pip):

# 安装最新版本
pip install numpy pandas matplotlib# 验证安装
python -c "import numpy, pandas, matplotlib; print('安装成功!')"

注意:若安装缓慢,可使用国内镜像源(如-i https://pypi.tuna.tsinghua.edu.cn/simple)。


3. NumPy:高性能数值计算

核心功能:多维数组操作、数学函数、线性代数运算。

基础使用

import numpy as np# 创建数组
arr = np.array([1, 2, 3, 4])          # 一维数组
matrix = np.array([[1, 2], [3, 4]])   # 二维数组# 常用操作
print(arr.shape)                      # 数组形状 → (4,)
print(matrix.sum(axis=0))             # 按列求和 → [4 6]
print(np.arange(0, 10, 2))            # 类似range → [0 2 4 6 8]# 数学运算
arr_sin = np.sin(arr)                 # 对每个元素求正弦
result = np.dot(matrix, matrix)       # 矩阵乘法 → [[7 10], [15 22]]

应用场景

  • 图像像素处理(多维数组操作)。
  • 科学计算(如傅里叶变换、随机数生成)。

4. Pandas:数据处理与分析

核心功能:表格数据(DataFrame)处理、数据清洗、统计分析。

基础使用

import pandas as pd# 创建DataFrame
data = {"Name": ["Alice", "Bob"], "Age": [25, 30]}
df = pd.DataFrame(data)# 数据读取与保存
df = pd.read_csv("data.csv")          # 读取CSV文件
df.to_excel("output.xlsx")            # 保存为Excel# 数据处理
print(df.head(2))                     # 查看前两行
print(df["Age"].mean())               # 计算平均年龄 → 27.5
df_filtered = df[df["Age"] > 25]      # 过滤年龄>25的记录# 数据清洗
df.dropna()                           # 删除缺失值
df.fillna(0)                          # 填充缺失值为0

应用场景

  • 数据清洗(处理缺失值、重复值)。
  • 时间序列分析(如股票数据滚动计算)。

5. Matplotlib:数据可视化

核心功能:绘制折线图、柱状图、散点图等,支持高度自定义样式。

基础使用

import matplotlib.pyplot as plt# 折线图
x = [1, 2, 3, 4]
y = [10, 20, 15, 30]
plt.plot(x, y, label="Sales", color="blue", marker="o")
plt.xlabel("Month")                   # X轴标签
plt.ylabel("Revenue")                 # Y轴标签
plt.title("Monthly Sales Report")     # 图表标题
plt.legend()                          # 显示图例
plt.show()# 柱状图
categories = ["A", "B", "C"]
values = [23, 45, 56]
plt.bar(categories, values)
plt.show()# 多子图绘制
fig, axes = plt.subplots(2, 1)        # 2行1列的子图
axes[0].plot(x, y)
axes[1].scatter(x, y)                 # 散点图
plt.tight_layout()                    # 自动调整布局
plt.show()

应用场景

  • 生成实验数据图表(如论文插图)。
  • 实时数据监控仪表盘开发。

6. 实战案例:销售数据分析与可视化

目标:读取销售数据,统计各产品销量,绘制趋势图。

代码实现

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt# 1. 读取数据
df = pd.read_csv("sales_data.csv")# 2. 数据清洗
df.dropna(inplace=True)  # 删除缺失值
df["Date"] = pd.to_datetime(df["Date"])  # 转换日期格式# 3. 按产品统计月销量
monthly_sales = df.groupby([pd.Grouper(key="Date", freq="M"), "Product"])["Quantity"].sum().reset_index()# 4. 绘制趋势图
products = monthly_sales["Product"].unique()
plt.figure(figsize=(10, 6))for product in products:data = monthly_sales[monthly_sales["Product"] == product]plt.plot(data["Date"], data["Quantity"], label=product, marker="o")plt.title("Monthly Sales Trends by Product")
plt.xlabel("Date")
plt.ylabel("Sales Quantity")
plt.legend()
plt.grid(True)
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

输出效果

  • 图表展示不同产品随时间变化的销量趋势,支持决策分析。

7. 总结与扩展学习

  • NumPy:数值计算基石,高效处理大规模数据。
  • Pandas:数据清洗与分析利器,支持复杂查询。
  • Matplotlib:可视化核心,可结合Seaborn美化图表。
  • 进阶方向
    • 机器学习(Scikit-learn)。
    • 交互式可视化(Plotly、Pyecharts)。
    • 大数据处理(PySpark)。

8. 常见问题QA

  • Q: 安装时报错“Permission denied”如何解决?
    A: 使用管理员权限运行命令(sudo pip install)或添加--user参数。

  • Q: Pandas读取Excel文件时提示缺失驱动?
    A: 安装openpyxl库:pip install openpyxl

  • Q: Matplotlib图表在Jupyter中不显示?
    A: 添加魔术命令%matplotlib inline(Jupyter Notebook环境)。


相关文章:

Python数据分析三剑客:NumPy、Pandas与Matplotlib安装指南与实战入门

Python数据分析三剑客:NumPy、Pandas与Matplotlib安装指南与实战入门 1. 引言 Python数据分析生态:NumPy、Pandas、Matplotlib是数据科学领域的核心工具链。适用场景:数值计算、数据处理、可视化分析(如金融分析、机器学习、科研…...

二:操作系统之进程控制块(PCB)

进程的身份证与状态记录:深入理解进程控制块 (PCB) 在我们之前的博客中,我们探讨了进程是什么——程序的一次执行实例,以及进程在其生命周期中会经历的各种状态(新建、就绪、运行、等待、终止)。我们知道,…...

Spring-Beans的生命周期的介绍

目录 1、Spring核心组件 2、Bean组件 2.1、Bean的定义 2.2、Bean的生命周期 1、实例化 2、属性填充 3、初始化 4、销毁 2.3、Bean的执行时间 2.4、Bean的作用域 3、常见问题解决方案 4、与Java对象区别 前言 关于bean的生命周期,如下所示: …...

Android 自定义悬浮拖动吸附按钮

一个悬浮的拨打电话按钮,使用CardViewImageView可能会出现适配问题,也就是图片显示不全,出现这种问题,就直接替换控件了,因为上述的组合控件没有FloatingActionButton使用方便,还可以有拖动和吸附效果不是更…...

通过串口设备的VID PID动态获取串口号(C# C++)

摘要 本篇文章主要介绍分别通过C#和C++使用设备VID PID如何动态获取COM口 目录 1 简述 2 VID PID查看方式 3 C#实现通过串口设备的VID PID动态获取串口号 3.1 辅助类实现 3.2 调用实例 4 C++实现通过串口设备的VID PID动态获取串口号 4.1 辅助类实现 4.2 调用实例 1 简…...

[创业之路-361]:企业战略管理案例分析-2-战略制定-使命、愿景、价值观的失败案例

一、失败案例 1、使命方面的失败案例 真功夫创业者内乱:真功夫在创业过程中,由于股权结构不合理,共同创始人及公司大股东潘宇海与实际控制人、董事长蔡达标产生管理权矛盾。双方在公司发展方向、管理改革等方面无法达成一致,导致…...

Window远程连接Linux桌面版

Window远程连接Linux桌面版 卸载RealVNC Server 一、确认是否安装了 VNC Server 先检查是否已安装: which vncserver # 或 dpkg -l | grep vnc # 或 rpm -qa | grep vnc二、在 Debian / Ubuntu 上卸载(.deb 安装) 1. 卸载 RealVNC Serve…...

一种开源的高斯泼溅实现库——gsplat: An Open-Source Library for Gaussian Splatting

一种开源的高斯泼溅实现库——gsplat: An Open-Source Library for Gaussian Splatting 文章目录 一种开源的高斯泼溅实现库——gsplat: An Open-Source Library for Gaussian Splatting摘要Abstract1. 基本思想1.1 设计1.2 特点 2. Nerfstudio&Splatfacto2.1 Nerfstudio2.…...

ARM A64 STR指令

ARM A64 STR指令 1 STR (immediate)1.1 Post-index1.1.1 32-bit variant1.1.2 64-bit variant 1.2 Pre-index1.2.1 32-bit variant1.2.2 64-bit variant 1.3 Unsigned offset1.3.1 32-bit variant1.3.2 64-bit variant 1.4 Assembler symbols 2 STR (register)2.1 32-bit varia…...

C#中的成员常量:编译时的静态魔法

在C#编程中,常量(const)是一个强大而特殊的语言特性,特别是当它们作为类的成员时。本文将深入探讨成员常量的特性、使用场景以及与静态量的区别。 成员常量的基本特性 成员常量是声明在类内部的常量,具有以下核心特点: 声明位置…...

Linux wlan 单频段 dual wifi创建

环境基础 TP LINK WN722N V1网卡linux 主机 查看设备是否支持双ap managed:客户端模式(连接路由器/AP)AP:接入点模式(创建热点)AP/VLAN:支持带VLAN标签的虚拟AP{ AP, mesh point, P2P-GO } &l…...

HOW - React NextJS 的同构机制

文章目录 一、什么是 Next.js 的同构?二、核心目录结构三、关键函数:如何实现不同渲染方式?1. getServerSideProps —— 实现 SSR(每次请求动态获取数据)2. getStaticProps getStaticPaths —— 实现 SSG(…...

c#队列及其操作

可以用数组、链表实现队列&#xff0c;大致与栈相似&#xff0c;简要介绍下队列实现吧。值得注意的是循环队列判空判满操作&#xff0c;在用链表实现时需要额外思考下出入队列条件。 设计头文件 #ifndef ARRAY_QUEUE_H #define ARRAY_QUEUE_H#include <stdbool.h> #incl…...

【CSS】使用 CSS 绘制三角形

一、Border 边框法&#xff08;最常用&#xff09; 原理&#xff1a;通过设置元素的宽高为 0&#xff0c;利用透明边框相交形成三角形。 .triangle {width: 0;height: 0;border-left: 50px solid transparent; /* 左侧边框透明 */border-right: 50px solid transparent; /* …...

信奥赛-刷题笔记-栈篇-T2-P3056括号调整问题0518

总题单 ​ 本部分总题单如下 【腾讯文档】副本-CSP-JSNOI 题单 (未完待续) https://docs.qq.com/sheet/DSmJuVXR4RUNVWWhW?tabBB08J2 栈篇题单 P3056 [USACO12NOV] Clumsy Cows S https://www.luogu.com.cn/problem/P3056 题目描述 Bessie the cow is trying to type …...

生命之树--树形dp

1.树形dp--在dfs遍历树的同时dp&#xff0c;从上到下递归&#xff0c;到叶子是边界条件 https://www.luogu.com.cn/problem/P8625 #include<bits/stdc.h> using namespace std; #define N 100011 typedef long long ll; typedef pair<ll,int> pii; int n,c; ll …...

inverse-design-of-grating-coupler-3d

一、设计和优化3D光栅耦合器 1.1 代码讲解 通过预定义的环形间距参数(distances数组),在FDTD中生成椭圆光栅结构,并通过用户交互确认几何正确性后,可进一步执行参数扫描优化。 # os:用于操作系统相关功能(如文件路径操作) import os import sys# lumapi:Lumerical 的…...

Science Robotics 封面论文:基于形态学开放式参数化的仿人灵巧手设计用于具身操作

人形机械手具有无与伦比的多功能性和精细运动技能&#xff0c;使其能够精确、有力和稳健地执行各种任务。在古生物学记录和动物王国中&#xff0c;我们看到了各种各样的替代手和驱动设计。了解形态学设计空间和由此产生的涌现行为不仅可以帮助我们理解灵巧的作用及其演变&#…...

普通用户的服务器连接与模型部署相关记录

普通用户的服务器连接与模型部署相关记录 一、从登录到使用自己的conda 1.账号登陆&#xff1a; ssh xxx172.31.226.236 2.下载与安装conda&#xff1a; 下载conda&#xff1a; wget -c https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh 安装con…...

DSU-Net

目录 Abstract 摘要 DSU-Net 模型框架 编码器 轻量级适配器模块 特征融合与协作 解码器 模型优势 实验 代码 总结 Abstract DSU-Net is an improved U-Net model based on DINOv2 and SAM2. It addresses the limitations of existing image segmentation models …...

深入解析Python中的Vector2d类:从基础实现到特殊方法的应用

引言 在Python面向对象编程中&#xff0c;特殊方法&#xff08;或称魔术方法&#xff09;是实现对象丰富行为的关键。本文将以Vector2d类为例&#xff0c;详细讲解如何通过特殊方法为自定义类添加多种表示形式和操作能力。 Vector2d类的基本行为 Vector2d类是一个二维向量类…...

2025年- H30-Lc138- 141.环形链表(快慢指针,快2慢1)---java版

1.题目描述 2.思路 弗洛伊德算法&#xff08;快慢指针 3.代码实现 public boolean hasCycle(ListNode head) {//1.如果空节点或者只有一个节点&#xff0c;都说明没有环&#xff0c;返回falseif(headnull||head.nextnull){return false;}//2.定义快慢指针&#xff0c;都从头…...

LoadBarWorks:一款赛博风加载动画生成器的构建旅程

我正在参加CodeBuddy「首席试玩官」内容创作大赛&#xff0c;本文所使用的 CodeBuddy 免费下载链接&#xff1a;腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 项目缘起&#xff1a;赛博与实用的结合 在日常开发中&#xff0c;我经常需要为不同的项目添加加载动画&#x…...

SAP集团内部公司间交易自动开票

SAP集团内部公司间交易自动开票(非STO/EDI模式) 集团内部公司间采购与销售业务&#xff0c;在确认相应单据无误后&#xff0c;为减少人工开票业务&#xff0c; 可以用系统标准功能来实现自动开票。 1.采购发票自动开票(ERS) T-CODE:BP,勾选“基于收货的发票校验”、“自动G…...

【YOLO(txt)格式转VOC(xml)格式数据集】以及【制作VOC格式数据集 】

1.txt—>xml转化代码 如果我们手里只有YOLO标签的数据集&#xff0c;我们要进行VOC格式数据集的制作首先要进行标签的转化&#xff0c;以下是标签转化的脚本。 其中picPath为图片所在文件夹路径&#xff1b; txtPath为你的YOLO标签对应的txt文件所在路径&#xff1b; xmlPa…...

WSL 安装 Debian 12 后,如何安装图形界面 X11 ?

在 Debian Linux 系统中安装 X11&#xff08;X Window System&#xff09;&#xff0c;可以按照以下步骤进行操作&#xff1a; 一、确认系统版本和硬件支持 首先&#xff0c;你需要确认自己的 Debian 系统版本&#xff0c;可使用以下命令&#xff1a; cat /etc/debian_versi…...

Linux 的 UDP 网络编程 -- 回显服务器,翻译服务器

目录 1. 回显服务器 -- echo server 1.1 相关函数介绍 1.1.1 socket() 1.1.2 bind() 1.1.3 recvfrom() 1.1.4 sendto() 1.1.5 inet_ntoa() 1.1.6 inet_addr() 1.2 Udp 服务端的封装 -- UdpServer.hpp 1.3 服务端代码 -- UdpServer.cc 1.4 客户端代码 -- UdpClient.…...

C++笔试题(金山科技新未来训练营):

题目分布&#xff1a; 17道单选&#xff08;每题3分&#xff09;3道多选题&#xff08;全对3分&#xff0c;部分对1分&#xff09;2道编程题&#xff08;每一道20分&#xff09;。 不过题目太多&#xff0c;就记得一部分了&#xff1a; 单选题&#xff1a; static变量的初始…...

【RabbitMQ】 RabbitMQ高级特性(二)

文章目录 一、重试机制1.1、重试配置1.2、配置交换机&队列1.3、发送消息1.4、消费消息1.5、运行程序1.6、 手动确认 二、TTL2.1、设置消息的TTL2.2、设置队列的TTL2.3、两者区别 三 、死信队列6.1 死信的概念3.2 代码示例3.2.1、声明队列和交换机3.2.2、正常队列绑定死信交…...

大数据技术全景解析:HDFS、HBase、MapReduce 与 Chukwa

大数据技术全景解析&#xff1a;HDFS、HBase、MapReduce 与 Chukwa 在当今这个信息爆炸的时代&#xff0c;大数据已经成为企业竞争力的重要组成部分。从电商的用户行为分析到金融的风险控制&#xff0c;从医疗健康的数据挖掘到智能制造的实时监控&#xff0c;大数据技术无处不…...