数据分析基础:numpy学习

发布时间:2026/9/22 17:55:57

数据分析基础:numpy学习
数据分析基础numpy学习引言大家好我是你们的老朋友——一个资深技术博主。今天我们来聊聊数据分析的入门利器NumPy。很多人刚接触数据分析时可能会被各种库搞晕但NumPy绝对是绕不开的第一关。它就像数据分析的“地基”没有它后续的Pandas、Matplotlib等库就无从谈起。那么NumPy到底是什么它为什么这么重要别急跟着我一步步探索你很快就能上手NumPyNumerical Python的缩写是Python中用于科学计算的核心库。它提供了高性能的多维数组对象ndarray以及对这些数组进行各种操作的函数。简单来说NumPy就是让Python能像MATLAB或R语言一样高效处理数值数据的“瑞士军刀”。它的核心优势在于速度极快底层用C语言实现、内存占用小、支持向量化操作避免Python循环。在本文中我们将通过通俗易懂的解释和代码示例带你掌握NumPy的基础知识。读完这篇文章你不仅能创建和操作NumPy数组还能理解为什么它在数据分析中如此重要。## 安装与导入开始之前确保你的Python环境已经安装了NumPy。如果未安装可以通过pip命令进行安装bashpip install numpy安装完成后在代码中导入NumPy通常我们使用别名nppythonimport numpy as np这个习惯约定俗成几乎所有Python开发者都这么用。接下来我们正式进入NumPy的世界## 创建NumPy数组从列表到多维数组NumPy的核心是ndarrayN维数组对象。它和Python列表类似但功能更强大。创建数组最直接的方式是从列表转换。### 示例1从列表创建一维和二维数组pythonimport numpy as np# 从列表创建一维数组arr1d np.array([1, 2, 3, 4, 5])print(一维数组, arr1d)# 输出一维数组 [1 2 3 4 5]# 从嵌套列表创建二维数组矩阵arr2d np.array([[1, 2, 3], [4, 5, 6]])print(二维数组)print(arr2d)# 输出# 二维数组# [[1 2 3]# [4 5 6]]# 查看数组形状print(arr1d的形状, arr1d.shape) # (5,)print(arr2d的形状, arr2d.shape) # (2, 3)# 查看数组维度print(arr1d的维度, arr1d.ndim) # 1print(arr2d的维度, arr2d.ndim) # 2解释- 使用np.array()可以从任何可迭代对象如列表、元组创建数组。-shape属性返回一个元组表示数组各维度的大小。例如(2, 3)表示2行3列。-ndim属性返回数组的维数。除了从列表创建NumPy还提供了许多便捷函数例如np.zeros()、np.ones()、np.arange()等用于生成特定模式的数组。比如np.zeros((3, 4))会创建一个3行4列的全零数组。## 数组操作索引、切片与广播NumPy数组支持类似Python列表的索引和切片操作但功能更丰富。更重要的是它支持“广播”机制可以在不同形状的数组之间进行算术运算。### 示例2索引、切片与广播运算pythonimport numpy as np# 创建一个3x4的随机数组arr np.random.randn(3, 4) # randn生成标准正态分布的随机数print(原始数组)print(arr)# 索引获取第2行第3列的元素注意索引从0开始element arr[1, 2] # 第1行第2列因为索引从0开始实际是第2行第3列print(第2行第3列元素, element)# 切片获取前两行所有列sub_arr arr[:2, :] # 行索引0和1列全部print(前两行)print(sub_arr)# 广播运算给数组每个元素加5arr_plus_5 arr 5print(所有元素加5后的结果)print(arr_plus_5)# 广播运算数组与一维数组相加自动扩展row_vector np.array([1, 2, 3, 4])result arr row_vector # 自动将row_vector广播到3行print(数组与行向量相加)print(result)解释- 索引使用[行号, 列号]的语法多维索引用逗号分隔。- 切片使用[起始:结束:步长]的语法与Python列表类似。- 广播机制是NumPy的“黑魔法”当两个数组形状不同时NumPy会自动扩展较小数组使其与较大数组兼容。例如3x4的数组加上长度为4的一维数组NumPy会将一维数组视为3行每行重复这个向量前提是维度兼容。广播的关键规则1. 如果两个数组的维度数不同小维度的数组会在前面补1。2. 如果两个数组在某个维度上的大小不一致且其中一个为1则这个维度会被扩展。3. 如果两个维度都不为1且不一致则报错。例如arr (3, 4) row_vector (4,)中row_vector被视为(1, 4)然后扩展为(3, 4)。这大大简化了代码避免了显式循环。## 常用函数统计与数学运算NumPy内置了大量数学和统计函数让数据分析变得轻松。以下是一些常用函数-统计函数np.mean()均值、np.sum()求和、np.std()标准差、np.max()最大值等。-数学函数np.sin()正弦、np.exp()指数、np.sqrt()平方根等。-数组操作np.reshape()改变形状、np.transpose()转置、np.concatenate()合并等。pythonimport numpy as np# 创建一个数组data np.array([[1, 2, 3], [4, 5, 6]])# 计算所有元素的均值mean_val np.mean(data)print(均值, mean_val) # 3.5# 计算每列的和col_sum np.sum(data, axis0) # axis0表示对行操作即纵向print(每列的和, col_sum) # [5 7 9]# 计算每行的最大值row_max np.max(data, axis1) # axis1表示对列操作即横向print(每行的最大值, row_max) # [3 6]# 改变数组形状注意元素总数不变reshaped data.reshape(3, 2) # 变成3行2列print(重塑后的数组)print(reshaped)提示axis参数是NumPy中一个关键概念。axis0表示沿着行的方向垂直方向axis1表示沿着列的方向水平方向。理解它可以帮助你准确地进行行列操作。## 总结今天我们轻松愉快地学习了NumPy的基础知识。从创建数组、索引切片到广播机制和常用函数每一步都包含了代码示例让你能立即动手实践。NumPy的强大之处在于它将复杂的数值计算抽象为简洁的向量化操作让你摆脱繁琐的Python循环专注于数据分析本身。如果你刚开始学习数据分析一定要花时间熟悉NumPy。它不仅是Pandas、Scikit-learn等库的基石也是你理解数据结构的起点。记住编程技能就像肌肉只有多练才能变得更强。建议你打开Jupyter Notebook跟着本文的示例敲一遍然后尝试创建自己的数组进行各种运算。最后送给大家一句话“NumPy学得好数据分析没烦恼。”下次我们将继续探讨Pandas敬请期待如果你有任何问题欢迎在评论区留言我们下期见

相关新闻

设备维修APP开发的市场及需求分析

设备维修APP开发的市场及需求分析

2026/9/3 12:21:28

在日常生活中,设备的故障同样是比较常见的一项,毕竟设备或多或少都会遇到一点问题,那么如果可以通过设备维修APP开发来进行维护的话,可以更好地保障用户的体验。一方面,通过设备维修APP开发的形式能够为用户提供一个比…

Adobe-GenP 3.0:5分钟快速解锁Adobe全家桶的终极解决方案

Adobe-GenP 3.0:5分钟快速解锁Adobe全家桶的终极解决方案

2026/8/26 10:20:43

Adobe-GenP 3.0:5分钟快速解锁Adobe全家桶的终极解决方案 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 在创意设计领域,Adobe Creative Cl…

5分钟快速上手:使用Firefox脚本轻松下载Sketchfab 3D模型完整指南

5分钟快速上手:使用Firefox脚本轻松下载Sketchfab 3D模型完整指南

2026/9/9 13:12:53

5分钟快速上手:使用Firefox脚本轻松下载Sketchfab 3D模型完整指南 【免费下载链接】sketchfab sketchfab download userscipt for Tampermonkey by firefox only 项目地址: https://gitcode.com/gh_mirrors/sk/sketchfab 你是否曾经在Sketchfab上发现了一个惊…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/21 18:38:46

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/21 18:41:09

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/21 18:36:40

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/21 18:37:26

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/21 18:40:29

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/21 18:36:17

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/22 0:19:28

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/21 23:38:13

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/22 0:48:53

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…