首页 > 人工智能 > 人工智能 > 人工智能之数据分析 numpy:第十四章 知识总结
第十四章 知识总结
本文主要讲解 NumPy 的核心知识点总结,涵盖其作为 Python 科学计算基石的关键概念与最佳实践,适合快速回顾、面试准备或系统学习。
ndarray(N 维数组)numpy.ndarray 展开。.shape:维度大小(元组).dtype:元素数据类型(如
int32,
float64,
U10).ndim:维度数量.size:总元素个数a = np.array([[1, 2], [3, 4]], dtype=np.float32) print(a.shape, a.dtype) # (2, 2) float32
| 方法 | 用途 |
|---|---|
np.array() |
从列表/元组创建 |
np.zeros(),
np.ones() |
全零/全一阵 |
np.empty() |
未初始化数组(快) |
np.arange() |
等差整数序列(类似
range) |
np.linspace() |
指定数量的等间距浮点数 |
np.eye() /
np.identity() |
单位矩阵 |
np.random.rand() 等 |
随机数组 |
✅ 推荐显式指定
dtype避免隐式转换。
arr.reshape(new_shape)(返回视图,若可能)arr.flatten()(副本) vs
arr.ravel()(视图优先)arr.T 或
arr.transpose(axes)np.expand_dims(arr, axis)np.squeeze(arr)(移除长度为1的轴)a = np.array([1, 2, 3]) b = a[:, np.newaxis] # → shape (3, 1)
| 操作 | 函数 |
|---|---|
| 水平拼接 |
np.hstack() /
np.concatenate(axis=1) |
| 垂直拼接 |
np.vstack() /
np.concatenate(axis=0) |
| 深度拼接 |
np.dstack() |
| 分割 |
np.split(),
np.hsplit(),
np.vsplit() |
⚠️ 注意:
concatenate要求除拼接轴外其他维度一致。
规则(从后往前对齐):
✅ 示例:
(3,) + (2, 3) →
(2, 3)(2, 1) + (3,) →
(2, 3)❌ 失败:
(2, 3) + (3, 2) → 最后一维 3≠2 且都不为1🔑 广播是向量化运算的核心,避免显式循环!
+ - * / // % **== != > < >= <= → 返回布尔数组& | ~(用于布尔数组),
np.logical_and/or/not& | ^ ~ << >> → 对应
np.bitwise_*np.sin,
np.exp,
np.sqrt,
np.lognp.add.accumulate()np.add.reduce()| 函数 | 说明 |
|---|---|
np.sum(),
np.mean(),
np.std() |
求和、均值、标准差 |
np.min(),
np.max() |
最值 |
np.argmin(),
np.argmax() |
返回索引 |
np.cumsum(),
np.cumprod() |
累积和/积 |
axis 参数 |
沿指定轴聚合(
axis=0 列,
axis=1 行) |
arr = np.array([[1, 2], [3, 4]]) print(arr.sum(axis=0)) # [4 6]
np.sort(arr):返回排序副本arr.sort():原地排序np.argsort():返回排序索引arr = np.array([1, 2, 3, 4]) filtered = arr[arr > 2] # [3 4] # 多条件(注意括号!) mask = (arr > 1) & (arr < 4)
np.where(condition, x, y):三元运算np.select(),
np.choose():多条件选择dtype=[('name', 'U10'), ('age', 'i4')]arr['name']arr.name(不推荐新项目使用)ndarray +
@ 运算符numpy.linalg)| 操作 | 函数 |
|---|---|
| 矩阵乘法 |
A @ B 或
np.dot(A, B) |
| 转置 |
A.T |
| 逆矩阵 |
np.linalg.inv(A) |
| 行列式 |
np.linalg.det(A) |
| 解方程 |
np.linalg.solve(A, b) |
| 特征值 |
np.linalg.eig(A) |
| SVD |
np.linalg.svd(A) |
| 范数 |
np.linalg.norm(x) |
✅ 优先用
solve而非inv(更稳定高效)
| 格式 | 函数 | 适用场景 |
|---|---|---|
.npy |
np.save() /
np.load() |
单数组,高效 |
.npz |
np.savez() /
np.load() |
多数组打包 |
| 文本 |
np.savetxt() /
np.loadtxt() |
小数据,可读 |
| 内存映射 |
np.memmap |
超大数组(>内存) |
| HDF5 |
h5py 库 |
科学大数据,跨平台 |
| 工具 | 关系 |
|---|---|
| Matplotlib | 直接绘图 NumPy 数组 |
| Pandas |
DataFrame.values 返回 ndarray |
| SciPy | 基于 NumPy,提供高级算法 |
| scikit-learn | 输入要求为 NumPy 数组 |
| TensorFlow/PyTorch | 张量 ↔ NumPy 数组互转 |
| MATLAB | NumPy |
|---|---|
| 索引从 1 开始 | 索引从 0 开始 |
A * B 是矩阵乘 |
A @ B 是矩阵乘,
A * B 是逐元素 |
end 表示末尾 |
用
-1 |
[A; B] 垂直拼接 |
np.vstack([A, B]) |
A(:) 展平 |
A.ravel() |
np.zeros() 比动态 append 快ravel() 默认返回视图np.memmapnp.matrixnp.matrix 和
frompyfunc“Everything is an array.” —— 用统一的 N 维数组模型,通过 向量化、 广播、 ufunc 实现高性能数值计算。
📌 附:速查命令
import numpy as np
# 创建
a = np.arange(10).reshape(2,5)
# 运算
b = np.sin(a) + 2
# 筛选
c = b[b > 0]
# 聚合
mean_val = c.mean()
# 保存
np.save('result.npy', c)
本文主要对numpy做一个总结。之前的python过渡项目部分代码已经上传至gitee,后续会逐步更新,主要受时间原因限制,当然自己也可以克隆到本地学习拓展。
公众号:咚咚王 gitee: https://gitee.com/wy18585051844/ai_learning

《Python编程:从入门到实践》 《利用Python进行数据分析》 《算法导论中文第三版》 《概率论与数理统计(第四版) (盛骤) 》 《程序员的数学》 《线性代数应该这样学第3版》 《微积分和数学分析引论》 《(西瓜书)周志华-机器学习》 《TensorFlow机器学习实战指南》 《Sklearn与TensorFlow机器学习实用指南》 《模式识别(第四版)》 《深度学习 deep learning》伊恩·古德费洛著 花书 《Python深度学习第二版(中文版)【纯文本】 (登封大数据 (Francois Choliet)) (Z-Library)》 《深入浅出神经网络与深度学习+(迈克尔·尼尔森(Michael+Nielsen)》 《自然语言处理综论 第2版》 《Natural-Language-Processing-with-PyTorch》 《计算机视觉-算法与应用(中文版)》 《Learning OpenCV 4》 《AIGC:智能创作时代》杜雨+&+张孜铭 《AIGC原理与实践:零基础学大语言模型、扩散模型和多模态模型》 《从零构建大语言模型(中文版)》 《实战AI大模型》 《AI 3.0》
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70048224/viewspace-3103434/ ,如需转载,请注明出处,否则将追究法律责任。