Skip to content
简体中文

切换主题

数学与机器学习基础

AI 入门第一步:Python、NumPy 与开发环境(虚拟环境、Git、Jupyter)

入门 25 分钟 适合: 初学者 / 开发者 / 研究者

本课要点

  • ▸AI 代码里最常用的 Python 只占语言的一小部分:列表、字典、函数、类、循环和模块导入,先把这些练熟。
  • ▸NumPy 的核心是 ndarray:一块同类型的多维数组。把“对每个元素循环”改写成“对整个数组运算”(向量化),代码更短、通常也快得多。
  • ▸广播(broadcasting)从最后一维往前比较形状,两维相等或其中一个是 1 就能运算;搞懂它,就能读懂大部分模型代码。
  • ▸每个项目一个虚拟环境(python -m venv 或 uv),依赖互不干扰;代码交给 Git 管理。
  • ▸做实验用 Jupyter 或 Colab,写成可复用的工具再移到 .py 文件里。

一句话回答

学 AI 的编程基本功只有三样:会写 Python、会用 NumPy 做数组计算、有一个干净可复现的开发环境。这三样在“数学与编程”阶段的 本单元 里大约需要 12 小时,之后学 PyTorch、调模型 API、做 RAG 都建立在它上面。

第一步:够用的 Python

Python 官方教程 是最权威的入门材料。读 AI 代码时最常遇到的是这几样:

语法 在 AI 代码里常见的样子
列表 list 一批样本、一串 token:batch = [x1, x2, x3]
字典 dict 配置、API 请求体:{"model": "...", "messages": [...]}
函数与默认参数 def train(lr=1e-3, epochs=10): ...
类 class 模型定义:class MyNet(nn.Module): ...
列表推导式 lengths = [len(t) for t in texts]
模块导入 import numpy as np

建议的学法:先读官方教程第 3–9 章(流程控制、数据结构、模块、类),然后直接做 Kaggle Learn 的 Python 课,在浏览器里边学边练。

第二步:NumPy 与向量化

NumPy 是 Python 数值计算的地基。它的核心对象 ndarray 是一块同类型的多维数组,每个数组都有形状 shape 和数据类型 dtype(NumPy 入门)。NumPy 论文把它称为整个科学 Python 生态的基础,其他数组库(包括深度学习框架的张量)都在模仿它的接口(Harris 等,2020)。

向量化的意思是:不要在 Python 里逐个元素循环,而是对整个数组下一条指令。

import numpy as np

x = np.random.rand(1_000_000)

# 循环版:逐元素在 Python 解释器里执行
y_loop = [v * 2 + 1 for v in x]

# 向量化版:一条语句,在 NumPy 的编译代码里批量完成
y_vec = x * 2 + 1

两种写法结果一样,但向量化版本把循环交给了 NumPy 内部的编译代码,省掉了解释器逐个元素的开销。你可以在 Jupyter 里用 %timeit 自己比一比。

广播(broadcasting)

形状不同的数组怎么相加?NumPy 的规则是:从最后一维(最右边)开始往左逐维比较,两维相等或其中一个是 1,就算兼容;不兼容就报错(官方文档)。

images = np.random.rand(32, 28, 28)   # 32 张 28×28 的图
mean = images.mean(axis=0)            # 形状 (28, 28)
centered = images - mean              # (32,28,28) 与 (28,28):从右往左比,兼容

模型代码里随处可见这种写法:一批数据减去均值、加上偏置向量、按行做 softmax。

一个小例子:只用 NumPy 做线性回归

把前面的内容串起来,用 梯度下降 拟合一条直线(线性回归)。原理见 机器是怎么学习的。

import numpy as np

rng = np.random.default_rng(0)
X = rng.random((200, 1))
y = 3 * X[:, 0] + 2 + 0.1 * rng.standard_normal(200)

w, b, lr = 0.0, 0.0, 0.5
for step in range(500):
    pred = X[:, 0] * w + b          # 向量化预测
    err = pred - y
    grad_w = 2 * (err * X[:, 0]).mean()
    grad_b = 2 * err.mean()
    w -= lr * grad_w
    b -= lr * grad_b

print(round(w, 2), round(b, 2))     # 接近 3 和 2

注意这里只有“训练步数”这一层循环,每一步内部对 200 个样本的计算全部是向量化的。下一课 PyTorch 与自动求导 会把手写的 grad_w、grad_b 交给框架自动计算。

第三步:开发环境

虚拟环境

不同项目依赖的库版本经常冲突。Python 自带的 venv 会为每个项目建一个独立目录,装进去的包默认和系统环境、其他虚拟环境隔离(venv 文档):

python -m venv .venv
source .venv/bin/activate        # Windows:.venv\Scripts\activate
pip install numpy jupyter

也可以用 uv,它把建环境、装包和锁定版本放在一个工具里,速度更快。

Git

代码、实验配置和小数据集都应该放进 Git。入门读 Pro Git 前三章就够:init、add、commit、branch、push。MIT 的 Missing Semester 课程把命令行、Shell 脚本、Git 和调试工具一起讲了,很适合补课。

Jupyter 与 Colab

Jupyter Notebook 把代码、输出和说明文字放在一页里,适合探索数据和做实验。没有合适的电脑,就用 Google Colab,浏览器打开即可运行(FAQ)。经验做法是:在 Notebook 里试出来,再把稳定的函数挪到 .py 文件里,方便复用和用 Git 比对改动。

常见误区

  • “先把 Python 全学完再学 AI”:没必要。掌握上面表格里的语法,就可以边做项目边补。
  • 在 NumPy 里写三层 for 循环:几乎总能改写成矩阵运算或广播,改写本身就是最好的练习。
  • 所有项目共用一个全局环境:迟早遇到版本冲突,而且别人无法复现你的结果。
  • 形状不对就乱加 reshape:先 print(a.shape),按广播规则从右往左对齐,弄清楚每一维的含义。

动手试试

  1. 在 Kaggle Learn Python 完成全部练习。
  2. 做 numpy-100 的前 50 题。
  3. 本单元项目:不用循环,只用 NumPy 对一批图片做归一化、做一次矩阵乘法、按行算 softmax,并用 %timeit 和循环版比较速度。
  4. 把项目放进一个新的虚拟环境和 Git 仓库,写一份 requirements.txt(或用 uv 生成锁文件),让别人能一键复现。

想系统地过一遍,可以读 Stanford CS231n 的 Python Numpy Tutorial,它用一页纸讲完了深度学习课程需要的 Python 和 NumPy。

常见问题

学 AI 一定要学 Python 吗?

如果只是用 AI 产品,不需要。但只要你想调用模型 API、做 RAG 或微调,主流框架(PyTorch、Hugging Face、scikit-learn)和几乎所有官方示例都是 Python,学它最省事。

NumPy 和 PyTorch 是什么关系?

两者都是多维数组库,写法很像。NumPy 主要跑在 CPU 上;PyTorch 的张量(tensor)还能放到 GPU 上,并能自动求导。先学 NumPy 再学 PyTorch,过渡几乎无缝。

venv、conda、uv 选哪个?

venv 是 Python 自带的,最简单;uv 是更快的包和项目管理工具,本站软件库也有收录;conda 适合需要非 Python 依赖的科学计算环境。新手选一个坚持用即可,关键是每个项目分开。

没有好电脑怎么办?

用 Google Colab,在浏览器里就能运行 Python 和 Notebook,还能使用免费的 GPU 运行环境(有使用限额)。

本课相关软件

出处与延伸阅读

  1. Python 官方教程(The Python Tutorial)
  2. Python 官方文档:数据结构
  3. Python 官方文档:venv 虚拟环境
  4. NumPy 官方:NumPy: the absolute basics for beginners
  5. NumPy 官方:Quickstart
  6. NumPy 官方:Broadcasting
  7. Harris 等(2020),Array Programming with NumPy(Nature)
  8. Stanford CS231n,Python Numpy Tutorial
  9. MIT,The Missing Semester of Your CS Education
  10. Pro Git(Git 官方图书)
  11. Project Jupyter 官方文档
  12. uv 官方文档
  13. Google Colab 常见问题(FAQ)

数据更新于:学 AI 课程 · 课程相关新闻(北京时间)