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

news2025/5/19 6:07:32

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环境)。


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

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使用方便,还可以有拖动和吸附效果不是更…

一种开源的高斯泼溅实现库——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…

Linux wlan 单频段 dual wifi创建

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

【CSS】使用 CSS 绘制三角形

一、Border 边框法(最常用) 原理:通过设置元素的宽高为 0,利用透明边框相交形成三角形。 .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 …

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

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

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

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

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 …

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

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

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

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

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

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

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

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

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++笔试题(金山科技新未来训练营):

题目分布: 17道单选(每题3分)3道多选题(全对3分,部分对1分)2道编程题(每一道20分)。 不过题目太多,就记得一部分了: 单选题: 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、正常队列绑定死信交…

电子电路:什么是电流离散性特征?

关于电荷的量子化,即电荷的最小单位是电子的电荷量e。在宏观电路中,由于电子数量极大,电流看起来是连续的。但在微观层面,比如纳米器件或单电子晶体管中,单个电子的移动就会引起可观测的离散电流。 还要提到散粒噪声,这是电流离散性的表现之一。当电流非常小时,例如在二…

深入理解位图(Bit - set):概念、实现与应用

目录 引言 一、位图概念 (一)基本原理 (二)适用场景 二、位图的实现(C 代码示例) 三、位图应用 1. 快速查找某个数据是否在一个集合中 2. 排序 去重 3. 求两个集合的交集、并集等 4. 操作系…

猫番阅读APP:丰富资源,优质体验,满足你的阅读需求

猫番阅读APP是一款专为书籍爱好者设计的移动阅读应用,致力于提供丰富的阅读体验和多样化的书籍资源。它不仅涵盖了小说、非虚构、杂志等多个领域的电子书,还提供了个性化推荐、书架管理、离线下载等功能,满足不同读者的阅读需求。无论是通勤路…