返回首页

Roadmap
更新于 2026年11月11日 全文 1229 字未阅读

NumPy 基础入门课程介绍#

Numpy 入门课程封面

NumPy 是做数值计算绕不开的工具。机器学习、深度学习、数据分析里那些 np. 开头的函数,底层全是它。但对刚学会 Python 的你来说,它看起来又有点吓人:满屏的 axis=0、reshape,还有括号套括号,第一眼根本不知道它在算什么。

不过好消息是 NumPy 的核心用法其实很少,真正天天用的就二十来个,剩下的是查文档的事。这门课就把这二十来个拆成 5 章,每章配 5 道练习和 10 个常见问题,带你建立“用数组代替循环”的思维方式和手感。

小提示: 在学习过程中记不着每个函数的作用没关系,只要你跟着本课程的每一个示例动手练习一次,留下印象以后,等再次遇到的时候再回过头来查看一次就会逐渐完全掌握。

适合谁#

先看一段你可能见过的代码:

scores = (x - x.mean(axis=0)) / x.std(axis=0)    # 这行到底在干嘛?

一行代码,没有循环,但你看不懂它在干嘛。

NumPy 就是这套“没有循环的写法”的地基。学不会 NumPy,后面 Pandas、scikit-learn、PyTorch 都只能当黑盒调用。

如果下面几条命中你,这门课就是为你准备的:

  • 刚学完 Python 基础(会写列表、循环、函数),但没用过 NumPy;

  • 学过一点 NumPy,能跑通示例,但说不清 axis=0 和 axis=1 到底差在哪;

  • 读别人写的 NumPy 代码读得很痛苦,想把“为什么这样写”搞清楚。

学习前需要准备#

只需要三样东西:

  1. 一个 Python 环境。建议 Python 3.9 及以上。

  2. 装好 NumPy(本课程使用版本为 2.3.0):

    pip install numpy==2.3.0
  3. 一个编辑器,初学者建议安装 Jupyter Notebook ,因为它是最适合跟着本文敲代码——每写一格就能立刻看到结果,不用反复 print。

如果对于以上内容还不熟悉的话,可以分别参见 “Conda安装教程:机器学习环境配置与使用入门” 和 “机器学习开发环境安装配置:Jupyter Notebook 与 PyCharm 使用教程” 来安装 Python 和 Jupyter Notebook 。

课程结构#

章节主题你会学到
第 1 章数组创建从列表造数组、全零全一、arange/linspace、随机数、reshape 变形
第 2 章索引与切片基础索引、切片、Fancy Indexing、布尔掩码、视图与副本的陷阱
第 3 章广播机制外和、按行/按列缩放、两两差值、按列归一化
第 4 章向量化运算归一化差值、角度特征、聚合统计、sort/argsort、范数门控变换
第 5 章数组实用工具极值提取、缩尾处理、数值量化与分帧、tile/diff、拼接与相关性

同时,我们把每一章的内容都拆成三节,并按照同一个顺序进行了组织:

  • 第 X.1 节 核心知识点:把这一章要用的函数讲清楚,配可运行代码;

  • 第 X.2 节 编程练习:5 道动手题,先自己写,再看答案;

  • 第 X.3 节 常见问题:10 个初学者最容易踩的坑,附解答。

一个贯穿全课程的例子#

为了让你不用反复更换数据集,全课程都用同一张“城市 × 季度销售额”表。你在第 1 章把它创建出来,后面 4 章一直用它:

import numpy as np

# 5 个城市 × 4 个季度的销售额(万元)
sales = np.array([
    [120.0, 135.0, 150.0, 165.0],
    [ 80.0,  92.0,  88.0, 105.0],
    [200.0, 210.0, 195.0, 230.0],
    [ 60.0,  72.0,  85.0,  78.0],
    [150.0, 145.0, 160.0, 175.0],
])

city_names    = np.array(["北京", "上海", "广州", "深圳", "成都"])
quarter_names = np.array(["Q1", "Q2", "Q3", "Q4"])

print(sales.shape)    # (5, 4)
print(sales.dtype)    # float64

就上面这么几行代码,就是你接下来要持续折腾的对象。它是一个 5 行 4 列的二维数组,每一行是一个城市,每一列是一个季度。

怎么用这门课#

别一口气读完五个章节。更实在的做法是:

  1. 打开一个 Notebook,把例子复制进去,真的跑一遍;

  2. 看到输出和文章里写的不一样,停下来查清楚为什么;

  3. 做第 X.2 节的练习,先别看答案,卡住了再看;

  4. 第 X.3 节不用通读,等你真的被某个问题绊倒时再回来查也可以。

提示: NumPy 的函数很多,但日常真正高频用的就二十来个。这门课只讲这些。遇到课程里没讲的函数时,先别急着背 API,直接去官方文档搜一下关键词——通常五秒钟就能找到答案。

Numpy 和 Pandas 的关系#

如果你已经学过本站的 Pandas 实战课程,可以把两者这样对上号:

你要做的事PandasNumPy
存一张表DataFramenp.ndarray(只有数字,没有列名)
按条件取数据df[df["销量"] > 3]arr[arr > 3]
按行/列汇总df.groupby(...)arr.sum(axis=0)
表格运算直接乘靠广播对齐形状

一句话:Pandas 管“有标签的表格”,NumPy 管“纯数字的矩阵”。 机器学习里两者都要用:数据清洗用 Pandas,模型内部的计算用 NumPy。

官方文档#

阅读 --