NumPy 的使用
Numpy
一、核心概念:NumPy 数组(ndarray)
NumPy 的核心是 ndarray
(N 维数组),与 Python 原生列表相比,具有以下优势:
- 同类型数据:所有元素类型必须一致(如全为
int
或float
),避免类型检查开销。 - 高效内存:连续存储,支持向量化操作,速度远快于列表。
- 多维支持:轻松处理一维、二维甚至更高维数据(如矩阵、张量)。
示例:创建数组
1 | import numpy as np |
二、关键操作:数组运算与索引
1. 向量化运算
NumPy 支持数组间的直接运算(无需循环),大幅提升效率。
1 | a = np.array([1, 2, 3]) |
2. 索引与切片
支持类似列表的切片,但扩展到多维:
1 | arr = np.array([[1, 2, 3], [4, 5, 6]]) |
3. 布尔索引
通过条件筛选数据:
1 | a = np.array([1, 2, 3, 4]) |
三、常用函数:统计与线性代数
1. 统计函数
1 | arr = np.array([1, 2, 3, 4]) |
2. 线性代数
1 | from numpy.linalg import inv, det |
四、广播机制(Broadcasting)
NumPy 允许不同形状的数组进行运算,自动扩展较小数组以匹配较大数组的形状。
1 | a = np.array([[1, 2], [3, 4]]) |
五、快速上手实践建议
- 动手练习:通过 NumPy 官方教程 或在线练习平台(如 Kaggle)巩固。
- 对比列表:尝试用 NumPy 和原生列表实现相同操作,感受性能差异。
- 结合实际:用 NumPy 处理 CSV 数据、图像像素等真实场景。
六、常见问题解答
- Q:NumPy 数组 vs Python 列表?
- A:数组适合数值计算,列表适合异构数据存储。
- Q:如何将数组转为列表?
- A:使用
arr.tolist()
。
- A:使用
- Q:如何保存/加载数组?
- A:
np.save('file.npy', arr)
保存,np.load('file.npy')
加载。
- A:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 胡摆摆的Blog!
评论——本站支持或不登录(科学上网)或第三方登录(只有我能看到)
TwikooLivere