Skip to content

Python 速成 (For JS Devs)

你已经会 JavaScript,Python 只是换了一套语法。核心概念完全相同

你已经会的 (JS)对应的 Python
const, let直接写变量名
[] 数组[] 列表 (List)
{} 对象{} 字典 (Dict)
array.map()列表推导式 [x for x in arr]
async/awaitasync/await (几乎一样)
npmpip
package.jsonrequirements.txt

// 变量声明
const name = "AI";
let count = 42;
const isReady = true;
// 类型检查
typeof name; // "string"
typeof count; // "number"
Array.isArray([]); // true

const arr = [1, 2, 3, 4, 5];
// 常用操作
arr.length; // 5
arr.push(6); // 添加元素
arr[0]; // 1
arr.slice(1, 3); // [2, 3]
arr.map(x => x * 2); // [2, 4, 6, 8, 10]
arr.filter(x => x > 2); // [3, 4, 5]
arr.reduce((a, b) => a + b, 0); // 15

const user = {
name: "张三",
age: 25,
skills: ["JS", "Python"]
};
// 访问
user.name; // "张三"
user["age"]; // 25
Object.keys(user); // ["name", "age", "skills"]
// 解构
const { name, age } = user;

// 普通函数
function add(a, b) {
return a + b;
}
// 箭头函数
const multiply = (a, b) => a * b;
// 默认参数
function greet(name = "World") {
return `Hello, ${name}!`;
}
// 展开运算符
function sum(...numbers) {
return numbers.reduce((a, b) => a + b, 0);
}

NumPy = Numerical Python,是 AI 的基础库。它提供高效的多维数组运算。

类比:如果 JS 数组是单车道,NumPy 数组就是高速公路(GPU 加速、向量化运算)。

# 原生 Python:逐个元素相加(慢)
a = [1, 2, 3]
b = [4, 5, 6]
result = [a[i] + b[i] for i in range(len(a))] # [5, 7, 9]
# NumPy:向量化运算(快 100x+)
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = a + b # array([5, 7, 9]) ⚡ 一行搞定
// JS 中你可能用嵌套数组表示矩阵
const matrix = [
[1, 2, 3],
[4, 5, 6]
];
// 访问元素
matrix[0][1]; // 2
// 但 JS 没有内置的矩阵运算...
// 你需要手写循环或用 math.js

NumPy 最强大的特性之一:不同形状的数组可以自动对齐运算

import numpy as np
# 标量 + 数组
arr = np.array([1, 2, 3])
arr + 10 # array([11, 12, 13]) ← 10 自动"广播"到每个元素
# 向量 + 矩阵
matrix = np.array([[1, 2, 3],
[4, 5, 6]]) # shape: (2, 3)
row = np.array([10, 20, 30]) # shape: (3,)
matrix + row
# array([[11, 22, 33],
# [14, 25, 36]])
# row 自动复制成 2 行,然后逐元素相加

操作NumPyJS 类比
创建数组np.array([1,2,3])[1,2,3]
形状arr.shapearr.length(但 NumPy 支持多维)
元素乘a * ba.map((x,i) => x * b[i])
矩阵乘a @ bnp.dot(a, b)无内置(需 math.js)
求和arr.sum()arr.reduce((a,b)=>a+b)
平均arr.mean()手写
最大值arr.max()Math.max(...arr)
转置matrix.T无内置
变形arr.reshape(2, 3)无内置

PyTorch = NumPy + GPU 加速 + 自动求导

🔥 PyTorch nn.Module 可视化

2层全连接 + ReLU | 参数量: 101,770
Input
[784]
Linear
[128]
ReLU
Linear
[10]
Output
Linear
ReLU
Sigmoid
Softmax
Dropout

💡 悬停层查看详情 | nn.Sequential 按顺序执行所有层

import torch
# 创建张量(和 NumPy 几乎一样)
tensor = torch.tensor([1.0, 2.0, 3.0])
# 移到 GPU
tensor = tensor.to('cuda') # 或 tensor.cuda()
# 开启自动求导(训练神经网络用)
x = torch.tensor(3.0, requires_grad=True)
y = x ** 2 # y = 9
y.backward() # 自动计算 dy/dx
print(x.grad) # 6.0 (因为 d(x²)/dx = 2x = 2*3 = 6)

PyTorch vs NumPy 速查:

NumPyPyTorch
np.array()torch.tensor()
arr.shapetensor.shape
np.dot(a, b)torch.matmul(a, b)a @ b
arr.sum()tensor.sum()
tensor.to('cuda') (GPU)
tensor.backward() (自动求导)

现在你已经掌握了 Python/NumPy 基础,可以开始学习:

  1. 梯度下降 - 理解 AI 如何”学习”
  2. 神经网络 - 像搭积木一样理解结构
  3. 词嵌入 - 文字如何变成数字