AI大模型基础 - Python数据分析(Numpy、Pandas、Matplotlib)

一、Python数据分析(常用三方库)简介

1. Numpy

核心思想

  • 多维数组计算:提供高性能的 ndarray(N-dimensional array)对象,核心围绕数值计算优化(如线性代数、随机数生成等)。
  • 底层优化:基于 C 实现,支持向量化操作(避免显式循环),内存连续存储,适合大规模数值运算
  • 广播机制:允许不同形状的数组进行数学运算(如标量与数组、不同维度的数组)。

关键特性

  • 基础数据结构:np.array/ ndarray(N维数组,支持整数、浮点数等数值类型)。
  • 功能:数学函数(如 np.sin())、线性代数(np.linalg)、随机数(np.random)。
  • 无标签:纯数值操作,不直接处理非数值数据(如字符串、时间)。
  • 优势:内存连续存储、广播机制、C语言级性能
  • 定位:底层数值计算引擎

案例

import numpy as np
arr = np.array([1,2],[3,4]) # 创建二维数组
print(arr * 2) # 向量化运算,所有元素乘以2

2. Pandas

核心思想

基于Numpy构建

  • 表格化数据处理:基于 DataFrame(二维表,类似多行多列)和 Series(一维列,类似一列)结构,专为结构化数据设计(如 CSV、SQL 表)。
  • 标签化索引:支持行/列标签(如字符串、时间索引),方便数据对齐和查询。
  • 数据清洗与分析:内置缺失值处理、分组聚合、合并、时间序列等高级操作,专注于表格型数据的清洗、转换和分析。

关键特性

  • 基础数据结构:
    – pd.DataFrame(多列,二维表格(行+列标签))
    – pd.Series(单列,一维带标签数组)。
  • 功能:数据对齐、缺失值处理、数据过滤(df[df[‘age’] > 30])、分组聚合(groupby)、透视表(pivot_table)、事件序列分析。
  • 整合非数值数据:支持字符串、分类变量、时间戳等。
  • 优势:灵活的数据操作API(如:groupby、merge、pivot_table)
  • 定位:结构化数据处理工具

案例

import pandas as pd
s = pd.Series([10,20])
df = pd.DataFrame({"A":[10,20],"B":["X","Y"]})
print(df[df["A"] > 1]) # 条件筛选

3. Matplotlib

核心思想

提供基于对象的绘图接口,通过图形元素(Figure、Axes、Line2D等)分层控制,实现高度定制化可视化。

  • 数据可视化:提供 MATLAB 风格的绘图接口,支持静态、交互式图表生成。
  • 图层化设计:通过 Figure(画布)、Axes(子图(坐标轴和图形))等对象逐步构建图表。
  • 高度可定制:可调整颜色、线型、标签、图例等所有视觉元素。

关键特性

  • 核心组件:
    Figure:画布容器
    Axes:坐标轴和图形(如折线图、柱状图)
  • 核心功能:2D/3D绘图、文本标注、样式定制
  • 基础接口:plt.plot()、plt.scatter() 等快速绘图,或面向对象方式(fig, ax = plt.subplots())。
  • 图表类型:折线图、散点图、柱状图、直方图等。
  • 与其他库集成:Pandas 直接调用 df.plot()。
  • 优势:细粒度控制图形属性
  • 定位:科学绘图底层

案例

windows下案例:

import matplotlib.pyplot as plt

# 解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体
plt.rcParams['axes.unicode_minus'] = False    # 解决负号显示问题
# mac中解决中文乱码问题
from matplotlib import font_manager
# 加载字体文件(替换为你的字体路径)
font_path = "/System/Library/Fonts/PingFang.ttc"  # Mac 苹方字体
font_prop = font_manager.FontProperties(fname=font_path, size=12)
plt.title("中文标题", fontproperties=font_prop)
plt.xlabel("X轴", fontproperties=font_prop)
plt.ylabel("Y轴", fontproperties=font_prop)

plt.plot([1,2,3],[4,5,6],color='red') # 创建折线图
plt.title("matplotlib入门") # 添加标题
plt.grid() # 添加网格
plt.xlable("X轴")
plt.ylable("y轴")
plt.show()

mac下案例(mac下解决中文乱码问题)

import matplotlib.pyplot as plt
from matplotlib import font_manager
# mac中解决中文乱码问题
# 加载字体文件(替换为你的字体路径)
font_path = "/System/Library/Fonts/PingFang.ttc"  # Mac 苹方字体
font_prop = font_manager.FontProperties(fname=font_path, size=12)

plt.plot([1,2,3],[4,5,6]) # 创建折线图
plt.title("matplotlib入门", fontproperties=font_prop) # 添加标题
plt.grid() # 添加网格
plt.xlable("X轴", fontproperties=font_prop)
plt.ylable("y轴", fontproperties=font_prop)
plt.show()

4. 总结

  • Numpy:数值计算的基石,提供高效率数组操作
  • Pandas:基于Numpy,添加数据标签和高级处理API
  • Matplotlib:与两者无缝集成,将数值数据转化为可视化图形

典型流程:Numpy生成数据 -> Pandas清洗/分析 -> Matplotlib:可视化

案例

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project     :python_project
@File        :data_analysis.py
@Create at   :2025/7/21 13:52
@version     :V1.0
@Author      :erainm
@Description :  数据分析案例
'''
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体
plt.rcParams['axes.unicode_minus'] = False    # 解决负号显示问题

# 1. Numpy生成数据
# data = np.random.randn(1, 9, (100, 3)) # Numpy生成1~9组成的100行3列数据
data = np.random.randn(100, 3)
print(data.shape) # (100, 3) 形状,几行几列
print(date.ndim) # 2 (几维)

# 2. Pandas处理数据
df = pd.DataFrame(data, columns=['A', 'B', 'C'])
df["sum"] = df.sum(axis=1) # 新增列,每行求和

# 3. Matplotlib可视化数据,绘图
fig, ax = plt.subplots()
ax.scatter(df['A'], df['sum'],c=df['B'],alpha=0.5) # 散点图
ax.set_title("Pands + Numpy + Matplotlib 综合应用")
plt.show()

二、Numpy、Pandas、Matplotlib安装

pip install numpy
pip install pandas
pip install matplotlib

注: 如果使用

2. 下载镜像源

中国大陆开源镜像站汇总如下:

一、企业贡献的开源镜像站

    搜狐开源镜像站:http://mirrors.sohu.com/
        搜狐公司提供的开源软件镜像站,方便用户下载各类开源软件。

    网易开源镜像站:http://mirrors.163.com/
        网易公司维护的开源软件镜像站,提供丰富的开源软件资源。

二、大学教学及研究用的开源镜像站

    北京理工大学:
        IPv4镜像站:http://mirror.bit.edu.cn
        IPv6镜像站:http://mirror.bit6.edu.cn

    北京交通大学:
        IPv4镜像站:http://mirror.bjtu.edu.cn
        IPv6镜像站:http://mirror6.bjtu.edu.cn
        双栈镜像站(支持IPv4和IPv6):http://debian.bjtu.edu.cn

    兰州大学:
        开源镜像站:http://mirror.lzu.edu.cn/

    厦门大学:
        开源镜像站:http://mirrors.xmu.edu.cn/

    上海交通大学:
        IPv4镜像站:http://ftp.sjtu.edu.cn/
        IPv6镜像站:http://ftp6.sjtu.edu.cn

    清华大学:
        双栈镜像站(支持IPv4和IPv6):http://mirrors.tuna.tsinghua.edu.cn/
        IPv6专用镜像站:http://mirrors.6.tuna.tsinghua.edu.cn/
        IPv4专用镜像站:http://mirrors.4.tuna.tsinghua.edu.cn/

    天津大学:
        开源镜像站:http://mirror.tju.edu.cn/

    中国科学技术大学:
        双栈镜像站(支持IPv4和IPv6):http://mirrors.ustc.edu.cn/
        IPv4专用镜像站:http://mirrors4.ustc.edu.cn/
        IPv6专用镜像站:http://mirrors6.ustc.edu.cn/

    西南大学:
        开源镜像站:http://linux.swu.edu.cn/swudownload/Distributions/

    东北大学:
        IPv4镜像站:http://mirror.neu.edu.cn/
        IPv6镜像站:http://mirror.neu6.edu.cn/

    电子科技大学:
        Ubuntu镜像站:http://ubuntu.uestc.edu.cn/

    青岛大学:
        开源镜像站:http://mirror.qdu.edu.cn/
python数据分析——numpy,pandas,matplotlib matliotilb:帮助画图 numpy:帮助我们处理数据型的数组 pandas:是在numpy的基础上除了帮我们处理数据型的数组,还能帮助我们处理字符串,列表,以及时间序列等等所有数据类型都是可以处理的 一,数据分析是用适当的方法对收集来的大量数据进行分析.(帮助人们做出判断,以便采取适当行动) 二,数据分析的流程: 1.提出问题 2.准备数据 3.分析数据 4.获得结论 5.成果可视化(图表或者文字等) 三,环境anaconda jupyter notebook ma. 阅读详情

相关推荐

Python应用NumPy与Pandas及Matplotlib完全解析

Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 1991年,第一个Python编译器诞生。它是由C语言实现的,且能够调用C语言的库文件。从其诞生,Python就已经具有了类、函数、异常处理、包含表和词典的核心数据类型,以及以模块为基础的拓展系统。 python应用非常广泛:Web开发、数据分析、人工智能、数学处理、科学计算及自动化运维等各个方面。

sinat_30844883的博客 1608

零基础小白如何快速入门学习Python数据分析

Python人才需求大,据权威统计机构显示,2020年Python人才缺口高达80万。腾讯、阿里、百度、网易、谷歌、滴滴等大型互联网企业更是大量使用python开发。这一系列政策和市场迹象都表明,Python确是当下发展的新趋势。 Python开发的主要领域 网络爬虫:在爬虫领域,Python几乎是霸主地位,想爬啥就爬啥。 数据分析:实现数据可视化,直观的展示数据。 网站开发:借助django,flask框架自己搭建网站 人工智能:谁会成为AI和大数据时代的第一开发语言?Python!Python

weixin_47951689的博客 3021

[Python从零到壹] 十一.数据分析之Numpy、Pandas、Matplotlib和Sklearn入门知识万字详解(1)

前一篇文章讲述了Selenium基础技术,通过三个基于Selenium技术的爬虫,爬取Wikipedia、百度百科和互动百科消息盒的例子,从实际应用出发来学习网络爬虫。本文将进入数据分析部分,主要普及网络数据分析的基本概念,讲述数据分析流程和相关技术,同时详细讲解Python提供的若干第三方数据分析库,包括Numpy、Pandas、Matplotlib、Sklearn等。基础文章,希望对您有所帮助。

杨秀璋的专栏 1万+

Python数据分析核心库精讲:Pandas、NumPy与Matplotlib

NumPy是一个用于科学计算的基础库,它提供了高性能的多维数组对象以及这些数组的操作工具。在Python中,NumPy数组是一个强大且灵活的数学对象,它允许我们以一种高效的方式存储和操作数值数据集。NumPy数组(通常称为ndarray)与其他Python数据结构的主要区别在于其同质性和维度。这意味着数组中的所有元素必须是相同的数据类型,并且数组的每个维度都可以拥有一个独立的大小。这与Python原生列表不同,列表可以包含不同类型的数据,并且大小是动态变化的。

weixin_36431145的博客 789

【实战指南】WinPE环境下360系统急救箱的病毒查杀全流程解析

本文详细解析了在WinPE环境下使用360系统急救箱进行病毒查杀的全流程。从制作WinPE启动盘到进入PE环境,再到360急救箱的深度使用和系统修复,提供了实用技巧和常见问题解决方案,帮助用户高效清除顽固病毒。

weixin_28568819的博客 537

thinkphp5.0.24反序列化漏洞分析

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

m0_67392182的博客 1871

基于BQ24610的24V电池充电板

转自我的博客 本文的主要目的在于传播基本的阅读datasheet的能力,以及PCB设计需要注意的基本问题。 本次需要设计的是24V动力锂电池充电电路。 原理图设计 参考官方参考电路 为了快速设计电路,自然是参考官方参考电路,选择Typical Application。 做细微的参数调整 由于我们的需求是给24V的电池充电,所以需要稍微修改一下原理图,接下来需...

greedyhao的博客 1万+

P+F--r2000激光雷达slam技术实现

P+F--r2000激光雷达slam技术实现

majingming123的博客 1668

风二西CTF流量题大集合-刷题笔记|基础题(1)

部分题目已包含脚本和解题视频,但更建议自行分析和手搓脚本。

zerorzeror的博客 2765

堆内存管理核心逻辑 超详细复习笔记

本文详细解析了堆内存管理的核心逻辑,包括初始化、分配和释放三个关键环节。系统通过全局堆管理结构体和链表机制实现动态内存管理:初始化时标记整块内存为空闲;分配时遍历链表查找合适空闲块并进行分割;释放时定位内存块头并重新标记为空闲,支持相邻块合并以减少碎片。文章对比了链表式管理和线性分配的优缺点,指出链表式更灵活但实现复杂,线性分配简单但无法释放。最后总结了常见错误(如指针回推错误、碎片问题)和扩展知识(不同内存管理算法)。这套机制是理解嵌入式系统和RTOS内存管理的基础。

2502_92009732的博客 1201

Debezium报错处理系列之二十八: Expiring 1 record(s) for test-ts-0:120001 ms has passed since batch creation

Debezium报错处理系列之二十八: Expiring 1 record(s) for test-ts-0:120001 ms has passed since batch creation

zhengzaifeidelushang的博客 3290

【RT-DETR有效改进】计算训练好权重文件对应的FPS、推理每张图片的平均时间(科研必备)

本文给大家带来的改进机制是利用我们训练好的权重文件计算FPS,同时打印每张图片所利用的平均时间,模型大小(以MB为单位),同时支持batch_size功能的选择,对于轻量化模型的读者来说,本文的内容对你一定有帮助,可以清晰帮你展示出模型速度性能的提升以及轻量化的效果(模型大小),对于以提高精度为目的的读者本文也能够帮助大家展示出现阶段的模型速度指标。所以本文的内容是十分有用的机制,对于大家发表论文来说,下面的图片为运行后的效果可以看到,该有的指标均已打印(本文内容为我独家创新,全网无第二份)下面是效果图和文

Snu77的博客 3629

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

上一篇: AI大模型基础-排序算法
下一篇: AI大模型初体验 - 聊天机器人
erainm
博客等级 码龄12年 1万+粉丝 214原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

erainm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值