NumPy是Python数据分析的基石,核心是ndarray多维数组,支持高效数值运算;常用创建方式包括np.array()、np.zeros()等,关键属性有shape、dtype、ndim;索引切片支持一维、二维及布尔索引。

想入门Python数据分析,NumPy是绕不开的第一步。它提供了高效、灵活的多维数组对象和大量数学函数,是Pandas、Matplotlib、Scikit-learn等库的底层基础。掌握NumPy核心操作,不是为了死记语法,而是建立“用数组思考问题”的直觉。
理解ndarray:NumPy的核心数据结构
NumPy一切围绕ndarray(N-dimensional array)展开——它不是Python原生列表,而是一块连续内存中存储的同类型数值集合,因此运算快、内存省。
- 创建数组常用方式:
np.array([1, 2, 3])(从列表转)、np.zeros((3, 4))(全0矩阵)、np.ones(5)(长度为5的全1向量)、np.arange(0, 10, 2)(类似range,生成[0,2,4,6,8]) - 关键属性要会看:
arr.shape(维度大小)、arr.dtype(元素类型,如int64、float32)、arr.ndim(几维数组) - 注意:
np.array([1, 2, 3.0])会自动提升为float64;想指定类型可用dtype='int32'
索引与切片:比Python列表更强大
NumPy支持花式索引、布尔索引和广播机制,让数据提取和筛选更直接。
- 一维数组像列表:
a[2]、a[1:4]、a[::-1](反转) - 二维数组用逗号分隔维度:
arr[0, 1]取第0行第1列;arr[1:3, :]取第1–2行全部列;arr[:, [0, 2]]取所有行的第0和第2列 - 布尔索引很实用:
arr[arr > 5]返回所有大于5的元素;arr[(arr > 2) & (arr 注意逻辑符用&而非and
向量化运算:告别for循环
NumPy函数默认对整个数组批量计算,无需显式循环,代码简洁且性能极高。
Python v2.4版chm格式的中文手册,内容丰富全面,不但是一本手册,你完全可以把她作为一本Python的入门教程,教你如何使用Python解释器、流程控制、数据结构、模板、输入和输出、错误和异常、类和标准库详解等方面的知识技巧。同时后附的手册可以方便你的查询。
立即学习“Python免费学习笔记(深入)”;
- 算术运算自动广播:
a + 5给每个元加5;a + b若形状兼容(如(3,4)+(4,)),会自动扩展维度相加 - 常用数学函数:
np.sqrt(a)、np.exp(a)、np.log(a)、np.sin(a),输入输出都是数组 - 统计方法直接调用:
a.sum()、a.mean()、a.std()、a.max();加axis=0按列算,axis=1按行算
数组变形与拼接:灵活组织数据结构
真实数据常需调整形状或合并多个来源,NumPy提供轻量级视图操作,不复制数据就能改变“看”的方式。
- 改变形状:
a.reshape(2, 3)(返回新数组)、a.resize((2, 3))(原地修改)、a.ravel()展平成一维副本、a.flatten()同上但总是返回副本 - 转置:
a.T或a.transpose(),二维即行列互换 - 拼接:
np.hstack([a, b])水平拼(列方向)、np.vstack([a, b])垂直拼(行方向)、np.concatenate([a, b], axis=1)更通用写法
NumPy入门不在于记住所有函数,而在于熟悉数组思维:把数据看作整体,用形状、轴、类型去描述它,再用向量化操作代替逐个处理。动手敲几遍创建、索引、计算、变形的例子,比读十遍文档更有效。









