通过 15 个相互独立的编程挑战检验并扩展 NumPy 能力。课程不采用入门式分步讲解,而是根据任务要求、示例和初始文件自行实现函数与程序,覆盖数组操作、统计、随机过程、线性代数、字符串、二进制数据和信号分析。
这些挑战由 3 个 Beginner 和 12 个 Intermediate 任务组成。单个情境通常包含若干递进任务,例如生成客户统计信息、求解矩阵问题、模拟随机系统,或使用 FFT 分析合成信号。这样的广度更适合有针对性的练习和自我检验,而不是第一次接触 NumPy。
你将学到什么
- 实现逐元素数学函数,并在不同数值数据类型之间转换数组
- 汇总多维交易数据,并计算描述性统计量与相关系数
- 组合使用索引、掩码、形状变换、连接、堆叠和拆分
- 为掷骰子、蒙特卡洛估计、抽样、图和马尔可夫链生成及转换随机数据
- 使用乘积、逆矩阵、行列式、SVD、特征值、秩和线性方程求解矩阵问题
- 对多维数组排序,并实现数值与坐标搜索
- 对编码数据应用向量化字符串函数和位运算
- 使用 FFT 和
einsum完成频率分析、矩阵表达式与张量收缩
本课程适合谁
本课程适合已经掌握 NumPy 基础、希望通过多样化编程问题发现知识薄弱点的学习者,也适合在进入更深入的数值计算前进行独立练习。如果你需要逐步教学,应先熟悉数组创建、索引、形状与函数。
前置要求: 你应能编写 Python 函数,并能创建、索引和计算 NumPy 数组。后半部分大多为 Intermediate 内容,具备基础统计与线性代数知识会很有帮助。
学习环境: 每个挑战都提供 Ubuntu 22.04 WebIDE、初始文件与任务验证。你将在浏览器中编辑和运行 Python 代码;FFT 挑战还使用 Matplotlib 绘制时域图与频域图。不使用外部服务账号。
常见问题
这些是引导实验,还是考核式挑战?
它们是 15 个独立挑战。每个挑战都提供任务要求和示例,但需要你自行完成实现并使用给定检查验证,而不是跟随完整答案演示。
课程适合完全没有 NumPy 经验的初学者吗?
不适合作为第一门 NumPy 课程。虽然课程目录级别为 Beginner,但其中 12 个挑战标为 Intermediate,并包含 SVD、FFT、位操作和张量收缩等主题,强烈建议先进行 NumPy 基础练习。
必须按顺序完成这些挑战吗?
15 个情境彼此独立,可以按主题选择。但在包含多个步骤的单个挑战中,应按顺序完成,因为后续函数可能会组合或依赖前面的实现。
课程有多少可视化内容?
只有 FFT 挑战要求使用 Matplotlib 绘图,包括波形、功率谱和标注频率峰值。其他挑战主要关注数值、字符串或二进制操作的实现与验证。




