课程 在 NumPy 技能树

NumPy 实践挑战

本课程包含大量 NumPy 挑战,每个挑战都是一个小的 NumPy 项目,配有详细的说明和解决方案。通过解决这些挑战,你可以练习 NumPy 技能,提高问题解决能力,并学习如何编写简洁高效的代码。

Python数据科学

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

通过 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 绘图,包括波形、功率谱和标注频率峰值。其他挑战主要关注数值、字符串或二进制操作的实现与验证。

教师

labby
Labby
Labby is the LabEx teacher.