图片来源:《星空列车与白的旅行》CG及二创
1311 字
3 分钟
笔记|数据分析学习笔记12|本章小结及补充
本系列所有文章都放在
数据科学标签,总目录如下:
12.1 NumPy 介绍
NumPy 是 Python 中科学计算的基础包。它是一个 Python 库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/O、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。
NumPy 的核心功能:
ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。- 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。
- 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。
- 线性代数、随机数生成以及傅里叶变换功能。
- 用于集成由 C、C++、Fortran 等语言编写的代码的 API。
12.2 ndarray
12.2.1 NumPy 数组(ndarray)的核心特性
- 多维性:支持 0 维(标量)、1 维(向量)、2 维(矩阵)及更高维数组。
- 同质性:所有元素类型必须一致(通过
dtype指定)。 - 高效性:基于连续内存块存储,支持向量化运算。
12.2.2 ndarray 常用属性
| 属性名称 | 通俗解释 | 使用示例 |
|---|---|---|
shape | 数组的形状:行数和列数(或更高维度的尺寸) | arr.shape |
ndim | 维度数量:数组是几维的(1 维、2 维、3 维等) | arr.ndim |
size | 总元素个数:数组中所有元素的总数 | arr.size |
dtype | 元素类型:数组中元素的类型(整数、浮点数等) | arr.dtype |
T | 转置:行变列,列变行 | arr.T |
itemsize | 单个元素占用的内存字节数 | arr.itemsize |
nbytes | 数组总内存占用量:size * itemsize | arr.nbytes |
flags | 内存存储方式:是否连续存储(高级优化) | arr.flags |
12.3 ndarray 的创建
12.3.1 六大创建分类说明
- 基础构造:适用于手动构建小规模数组或复制已有数据。
- 预定义形状填充:用于快速初始化固定形状的数组(如全 0 占位、全 1 初始化)。
- 基于数值范围生成:生成数值序列,常用于模拟时间序列、坐标网格等。
- 特殊矩阵生成:数学运算专用(如线性代数中的单位矩阵)。
- 随机数组生成:模拟实验数据、初始化神经网络权重等场景。
- 高级构造方法:处理非结构化数据(如文件、字符串)或通过函数生成复杂数组。
12.3.2 创建方法对照表
| 用途 | 方法 |
|---|---|
| 基础构造 | np.array()、np.copy() |
| 预定义形状填充 | np.zeros()、np.ones()、np.empty()、np.full() |
| 基于数值范围生成 | np.arange()、np.linspace()、np.logspace() |
| 特殊矩阵生成 | np.eye()、np.diag() |
| 随机数组生成 | np.random.rand()、np.random.randn()、np.random.randint() |
| 高级构造方法 | np.array()、np.loadtxt()、np.fromfunction() |
12.4 ndarray 的数据类型
| 数据类型 | 说明 |
|---|---|
bool | 布尔类型 |
int8、uint8int16、uint16int32、uint32int64、uint64 | 有符号、无符号的 8 位(1 字节)整型 有符号、无符号的 16 位(2 字节)整型 有符号、无符号的 32 位(4 字节)整型 有符号、无符号的 64 位(8 字节)整型 |
float16float32float64 | 半精度浮点型 单精度浮点型 双精度浮点型 |
complex64complex128 | 用两个 32 位浮点数表示的复数 用两个 64 位浮点数表示的复数 |
12.5 NumPy 常用函数总览
| 分类 | 函数 |
|---|---|
| 基本数学 | np.sqrt(x)、np.exp(x)、np.log(x)、np.sin(x)、np.abs(x)、np.power(a, b)、np.round(x, n) |
| 统计函数 | np.sum(x)、np.mean(x)、np.median(x)、np.std(x)、np.var(x)、np.min(x) / np.max(x)、np.percentile(x, q) |
| 比较函数 | np.greater(a, b)、np.less(a, b)、np.equal(a, b)、np.logical_and(a, b)、np.where(condition, x, y) |
| 去重函数 | np.unique(x)、np.in1d(a, b) |
| 排序函数 | np.sort(x)、x.sort()、np.argsort(x)、np.lexsort(keys) |
| 数组操作 | np.concatenate((a, b))、np.split(x, indices)、np.reshape(x, shape)、np.copy(x)、np.isnan(x) |
12.6 函数补充
下表列出了前文未详细展开、但在实际数据分析中常用的补充函数:
| 函数 | 功能 | 示例 |
|---|---|---|
np.concatenate((a, b)) | 将多个数组沿指定轴拼接 | np.concatenate(([1, 2], [3, 4])) → [1 2 3 4] |
np.count_nonzero(x) | 统计非零元素(或满足条件)的个数 | np.count_nonzero(temps > 30) 统计超过30的天数 |
axis 参数 | 指定聚合方向:axis=0 按列、axis=1 按行 | np.sum(arr, axis=1) 计算每行之和 |
12.7 本节小结
本节完成了以下内容:
- 回顾了 NumPy 的核心定位与功能:
ndarray多维数组、向量化运算、磁盘读写、线性代数与随机数等。 - 梳理了 ndarray 的三大特性(多维性、同质性、高效性)与八项常用属性。
- 归纳了 ndarray 的六大创建分类及对应方法。
- 整理了 ndarray 支持的全部数据类型(布尔、整数、浮点数、复数)。
- 汇总了 NumPy 常用函数速查表,覆盖基本数学、统计、比较、去重、排序和数组操作六大类。
- 补充了
np.concatenate、np.count_nonzero、axis参数等实用函数。
下一节我们将学习 Pandas 库。
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
笔记|数据分析学习笔记12|本章小结及补充
https://luq-blog.xyz/posts/2026-07-02-data-notes-12-numpy-summary/ 部分信息可能已经过时
相关文章 智能推荐
1
笔记|数据分析学习笔记11|排序函数
理工研习 本节介绍 NumPy 中的排序函数,包括数组排序、索引排序、去重与成员检测,掌握数据整理的核心方法。
2
笔记|数据分析学习笔记10|比较函数
理工研习 本节介绍 NumPy 中的比较函数,包括逐元素比较、逻辑运算、条件筛选与多条件赋值,掌握数据筛选的核心技巧。
3
笔记|数据分析学习笔记16|Series案例
理工研习 本节通过学生成绩、温度、股票、销售等实际案例,综合运用 Series 的创建、统计、筛选、排序、重采样等方法,巩固前几节所学知识。
4
笔记|数据分析学习笔记21|DataFrame案例
理工研习 本节通过学生成绩、销售数据、电商用户行为三个实际案例,综合运用 DataFrame 的创建、列运算、条件筛选、排序和聚合等操作。
5
笔记|数据分析学习笔记13|Pandas介绍
理工研习 本节介绍 Pandas 库的基础概念,包括其核心设计理念、与 NumPy 的关系,以及 Series 和 DataFrame 两大核心数据结构的对比。
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)
.webp)