→ From Coder to Shipper
From Coder to Shipper · Đầy đủ tiện ích

Những thư viện lớn của Python

numpy, matplotlib, scipy, Pillow, OpenCV, PyTorch — những bộ công cụ có sẵn biến toán nặng và dữ liệu thành một dòng import. Bạn chọn công cụ; AI viết code.

← / → để chuyển slide · chuyển EN/VI bên dưới

Toàn cảnh

Hệ sinh thái Python: đầy đủ tiện ích

Phần khó — toán nhanh trên dữ liệu lớn, vẽ biểu đồ, xử lý ảnh, mạng neural — đã được viết, kiểm chứng và miễn phí. Bạn import chúng; không tự xây.

Việc nặng đã được làm xong

Toán nhanh trên một triệu số, vẽ biểu đồ, chỉnh sửa ảnh, huấn luyện mạng neural — mỗi thứ là một thư viện hoàn thiện, đã kiểm chứng.

Một dòng import = một bộ công cụ

import numpy cho mảng nhanh; from PIL import Image cho chỉnh ảnh; import torch cho deep learning. Dòng import nói lên việc của cả file.

Bạn chọn việc — AI viết code

Bạn không cần nhớ hàng nghìn hàm. Bạn biết thư viện nào làm gì, rồi nhờ AI viết code và kiểm tra kết quả.

Xếp tầng, không rời rạc

NumPy là nền; các thư viện khác xây trên hoặc bên cạnh nó. Biết cách xếp tầng giải thích vì sao thư viện này nhanh, thư viện kia khoa học, thư viện kia trực quan.

Cách bạn sẽ dùng chúng

Bản đồ công việc, không phải danh sách hàm

Deck này là bản đồ công việc. Mỗi thư viện có một việc rõ ràng và một chút nếm thử API — đủ để bạn nhận ra nó trong code mà AI đưa cho bạn.

Điều bạn KHÔNG cần

Không cần nhớ API, không tự viết toán ma trận, không cần hiểu sâu bên trong cách mạng neural tự huấn luyện. Đó là việc của thư viện — và của AI.

Điều bạn CẦN

Bản đồ sáu công việc: mảng, biểu đồ, khoa học, ảnh, thị giác, deep learning. Khi một bài toán đến, bạn gọi tên công việc, chọn thư viện, phần còn lại giao cho AI.

Lấy một thư viện

pip install → import → gọi

Mọi thư viện trong deck đều theo cùng ba bước. Các tên gọi tắt (np, plt, cv2, torch) là quy ước — bạn sẽ nhận ra chúng ở khắp nơi.

get.py
# first time on this machine: install (projects list this in requirements.txt)
# pip install numpy pillow matplotlib

# every file that uses them starts like this:
import numpy as np                  # alias: np
from PIL import Image               # pull in the Image class
import matplotlib.pyplot as plt     # alias: plt

print(np.mean([1, 2, 3]))           # 2.0 — toolbox, ready

requirements.txt trong các dự án thật chỉ là danh sách các lệnh pip install. Nếu câu trả lời của AI bắt đầu bằng một dòng import lạ, đó là câu hỏi đầu tiên của bạn: 'cái này làm gì?'

01
Phần 1

NumPy — nền tảng nhanh

Nền của toàn bộ stack dữ liệu: mảng nhanh và toán vector. Mọi thứ khác đều nói ngôn ngữ của nó.

Phần 1 · NumPy

Mảng nhiều chiều nhanh — nền mọi người xây lên

Việc của NumPy chỉ có một: giữ số trong một lưới và làm toán trên cả lưới cùng lúc.

Mảng ndarray

Lưới số nhanh, kích thước cố định: một hàng, một bảng, hoặc cả một bức ảnh (rows × cols × 3). Giống list Python, nhưng sắp xếp để nhanh.

Toán vector

a * b nhân hai mảng từng phần tử trong một dòng — không vòng lặp. Đó là 'nhanh': toán tốc độ C trên hàng triệu số.

Nền móng

Matplotlib, SciPy, OpenCV và PyTorch đều trao đổi dữ liệu dưới dạng mảng NumPy. Đọc được một mảng [rows, cols] là đọc được phần lớn stack dữ liệu.

Phần 1 · nếm NumPy

Một biểu thức thay cho vòng lặp

Cốt lõi của NumPy: mô tả cả phép toán, không phải từng phần tử. Đó là cách vector.

numpy.py
import numpy as np

a = np.array([1, 2, 3, 4])
b = np.array([10, 20, 30, 40])

print(a * b)      # [ 10  40  90 160]  ← element by element
print(a.sum())    # 10
print(a.mean())   # 2.5

# an image = one array: rows × cols × 3 color channels
pixels = np.zeros((100, 100, 3))

np.array tạo mảng; .sum(), .mean() là các lần gọi hằng ngày. Dòng 11 là điểm nhấn: cả một bức ảnh chỉ là một mảng.

Phần 1 · vì sao nó nhanh

Một biểu thức thay cho một vòng lặp

Cách chậm (Python thường)

total = 0; for x in a: total = total + x — Python kiểm tra kiểu và biên từng phần tử. Ổn với 100 số, đau với 10 triệu.

Cách NumPy

a.sum() — một lần gọi, cả mảng được xử lý ở tốc độ C. Cùng kết quả, thường nhanh gấp 100. Mảng mới là mấu chốt; vòng lặp biến mất.

02
Phần 2

Matplotlib — biến nó thành hình

Thư viện vẽ kinh điển: từ list các số đến chart có thể chia sẻ trong ba lần gọi.

Phần 2 · Matplotlib

Biến dữ liệu thành hình

Con đường nhanh nhất từ 'list các số' đến 'chart có thể chia sẻ'.

Chart từ dữ liệu

Cho nó hai list (x, y), nó vẽ đường. Cột, scatter, histogram — những cách chuẩn để nhìn số.

Tên gọi tắt plt

import matplotlib.pyplot as plt là quy ước bạn thấy ở khắp nơi: plt.plot, plt.bar, plt.title, plt.show.

Bạn chủ yếu đọc output của nó

Với tư cách shipper bạn chủ yếu nhìn chart nó tạo ra — và thỉnh thoảng nhờ AI chỉnh: 'thành chart cột', 'thêm tiêu đề', 'xuất ra PNG'.

Phần 2 · nếm Matplotlib

Hai list vào, chart ra

Toàn bộ API là 'mô tả bức tranh': dữ liệu, kiểu, cửa sổ.

plot.py
import matplotlib.pyplot as plt

days = [1, 2, 3, 4, 5]
signups = [12, 19, 17, 28, 35]

plt.plot(days, signups)    # draw the line
plt.title("Daily signups")
plt.show()                 # open the window

Ba lần gọi và chart đã có. Hình dạng chính hệt này xuất hiện trong mọi phân tích dữ liệu bạn xem.

03
Phần 3

SciPy — bộ khoa học

Thống kê, tối ưu, tín hiệu, đại số tuyến tính — ngăn toán nghiêm túc, xây trên mảng NumPy.

Phần 3 · SciPy

Toán nghiêm túc, một tầng trên NumPy

SciPy = tính toán khoa học trên nền NumPy. Cùng mảng vào-ra, nhưng các công thức khó đã có sẵn bên trong.

scipy.stats

Toán phân phối: trung bình, độ lệch chuẩn, khoảng tin cậy, kiểm định giả thuyết. Khi hỏi 'kết quả này có ý nghĩa không?', câu trả lời đến từ đây.

scipy.optimize

Tìm tham số tốt nhất: hạ chi phí, khớp đường cong với dữ liệu. Động cơ đằng sau 'khớp model với dữ liệu'.

scipy.signal

Tần số và bộ lọc: làm sạch tín hiệu nhiễu từ cảm biến, tìm tần số chủ đạo. Bộ công cụ âm thanh và rung động.

scipy.linalg

Đại số tuyến tính vượt cơ bản của NumPy: phân rã, eigenvalue. Ngăn toán hạng nặng — tất cả nói bằng mảng NumPy.

Phần 3 · nếm SciPy

Thống kê như một lần gọi hàm

SciPy nhận list hoặc mảng và trả về số — cùng dữ liệu, thêm một tầng toán.

stats.py
from scipy import stats

temps = [21.5, 22.1, 20.9, 23.0, 22.4, 21.8, 22.6]
d = stats.describe(temps)

print(d.mean)          # 22.1 — the average
print(d.std)           # 0.6  — how much it varies
print(d.min, d.max)    # 20.9 23.0

Một lần describe() đưa ra bản tổng kết thống kê đầy đủ của bộ dữ liệu. Không vòng lặp, không công thức.

04
Phần 4

Pillow — ảnh hằng ngày

Bộ công cụ ảnh hằng ngày: mở, đổi kích thước, cắt, chuyển, lưu. Thư viện web app của bạn thực sự dùng.

Phần 4 · Pillow

Bộ công cụ ảnh hằng ngày

Pillow (PIL) làm 95% việc ảnh nhàm chán: mở, chỉnh, lưu. Không GPU, không model — chỉ pixel nhanh và đáng tin.

Mở & lưu

Image.open('a.jpg') đọc gần như mọi định dạng — JPEG, PNG, WebP, GIF; .save() ghi lại. Trụ cột của mọi endpoint ảnh.

Đổi kích thước & thu nhỏ

img.resize((200, 200)) đặt kích thước chính xác; img.thumbnail((200, 200)) thu nhỏ mà giữ tỉ lệ. Hai lần gọi đằng sau mọi tính năng 'upload ảnh'.

Cắt & chuyển đổi

img.crop((x1, y1, x2, y2)) cắt một vùng; img.convert('L') đổi sang đen trắng. Ghép chúng thành pipeline xử lý ảnh thật.

Liên quan nhất với bạn

Avatar, ảnh sản phẩm, thumbnail tạo ra, file upload — với web app trên VPS, Pillow là thư viện ảnh bạn gặp đầu tiên và dùng nhiều nhất.

Phần 4 · nếm Pillow

Mở, đổi kích thước, lưu — ba việc hằng ngày

Mọi thứ khác (cắt, xoay, filter) cùng một hình dạng: mở, gọi method, lưu.

img.py
from PIL import Image

img = Image.open("photo.jpg")      # open it
img = img.resize((400, 400))       # new size
thumb = img.copy()
thumb.thumbnail((100, 100))        # keep ratio
img.save("out.jpg")                # save it
print(img.size)                    # (400, 400)

Tám dòng, ảnh đã được đổi kích thước, thu nhỏ và lưu — cốt lõi của hầu hết các tính năng 'upload ảnh'.

05
Phần 5

OpenCV — thị giác máy tính

Xử lý ảnh và video ở quy mô lớn: filter, biến đổi, phát hiện — để máy tính nhìn thấy.

Phần 5 · OpenCV

Để máy tính nhìn thấy

Xử lý ảnh và video ở quy mô lớn — filter, biến đổi, phát hiện, từng khung một.

Toán pixel nhanh

Mờ, ngưỡng, phát hiện cạnh, xoay — viết bằng C tối ưu, nên vẫn nhanh trên ảnh lớn và cả luồng video.

Phát hiện & đặc trưng

Tìm khuôn mặt, góc, đường viền; khớp hình dạng. Bộ công cụ thị giác cổ điển — thứ có trước khi deep learning tiếp quản.

Tên gọi tắt cv2, thứ tự BGR

import cv2 là quy ước. Một đặc điểm nên nhớ: nó đọc ảnh theo BGR (blue–green–red), không phải RGB — nguồn bug màu kinh điển.

Phần 5 · nếm OpenCV

Thị giác như vài lần gọi trên mảng

Hình dạng: nạp ảnh, biến đổi, phát hiện gì đó. Đó là toàn bộ vốn từ.

cv.py
import cv2

img = cv2.imread("street.jpg")     # loads as a NumPy array!
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5, 5), 0)

faces = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
found = faces.detectMultiScale(gray, 1.1)
print(len(found), "faces found")

Dòng 3 là xếp tầng trong thực tế: OpenCV đưa bạn một mảng NumPy. Filter và phát hiện là các lần gọi đơn trên mảng đó.

06
Phần 6

PyTorch — nơi AI sinh ra

Framework deep learning: tensor, autograd, và vòng lặp huấn luyện đằng sau mọi model AI.

Phần 6 · PyTorch

Nơi các model AI được sinh ra

Framework deep learning: tensor, gradient tự động, và vòng lặp huấn luyện model.

Tensor

Giống mảng NumPy, nhưng chạy được cả trên GPU: torch.tensor([1, 2, 3]). Kiểu dữ liệu của deep learning.

Autograd

PyTorch ghi lại toán của bạn khi tính, để có thể tính gradient — 'mỗi trọng số nên đổi bao nhiêu'. Tín hiệu đó giúp việc huấn luyện khả thi.

Model & huấn luyện

Model là chuỗi phép toán tensor; huấn luyện là hàng nghìn bước dự đoán → đo lỗi → điều chỉnh nhẹ trọng số. Mọi LLM và model ảnh đều được tạo theo cách này.

Phần 6 · nếm PyTorch

Tensor + autograd trong bảy dòng

Bạn hiếm khi tự viết cái này — nhưng nhận ra 'đoạn này đang huấn luyện model' mới là kỹ năng.

torch.py
import torch

x = torch.tensor([1.0, 2.0, 3.0], requires_grad=True)
y = (x * x).sum()         # 1 + 4 + 9 = 14
y.backward()              # compute the gradient
print(x.grad)             # [2. 4. 6.]  ← d(x²)/dx = 2x

Một model trong phôi: một phép toán, và gradient chỉ ra hướng điều chỉnh. Huấn luyện = lặp lại điều này, hàng nghìn bước, ở quy mô lớn.

07
Phần 7

Toàn cảnh: xếp tầng & chọn lựa

Deck trong một góc nhìn: ai ngồi trên ai, việc nào thuộc thư viện nào, và bạn thực sự sẽ dùng gì.

Phần 7 · stack công nghệ

NumPy ở đáy — mọi thứ khác xây trên nó

Khi thư viện nói 'làm việc với mảng', nghĩa là mảng NumPy. Dữ liệu chảy xuống: app của bạn gọi hàm cấp cao, bên dưới là toán NumPy nhanh.

PyTorchdeep learning — tensor & model
SciPythống kê · tối ưu · tín hiệu
Matplotlibchart & biểu đồ
Pillowchỉnh sửa ảnh hằng ngày
OpenCVthị giác — filter · phát hiện
NumPynền — mảng nhiều chiều nhanh, toán vector
Pythonchính ngôn ngữ

app của bạn → gọi cấp cao → toán NumPy nhanh bên dưới

Phần 7 · bản đồ

Thư viện nào cho việc nào

Nhớ các dòng import, không phải các hàm — dòng import chính là mô tả công việc.

Thư việnMột việc của nóNhận ra khi
NumPyMảng nhiều chiều nhanh & toán vectorimport numpy as np — hầu hết stack dữ liệu bắt đầu ở đây
MatplotlibChart: đường, cột, histogram từ dữ liệuimport matplotlib.pyplot as plt
SciPyThống kê, tối ưu, tín hiệu, đại số tuyến tínhfrom scipy import stats / optimize
PillowẢnh hằng ngày: mở, đổi kích thước, cắt, chuyểnfrom PIL import Image
OpenCVThị giác: filter, phát hiện, khung videoimport cv2
PyTorchDeep learning: tensor, autograd, huấn luyệnimport torch
Phần 7 · thực tế của bạn

Web app của bạn thực sự chạm tới gì

Hầu hết dự án không bao giờ chạm tới stack nặng — và điều đó là đúng. Gắn công cụ với công việc.

Web app → Pillow

Upload, avatar, thumbnail, ảnh tạo ra: Pillow là trụ cột. Cài nhẹ, nhanh, vừa vặn VPS.

Câu hỏi dữ liệu → NumPy + Matplotlib

Phân tích CSV export, vẽ chart cho quyết định: NumPy làm toán, Matplotlib hiển thị. SciPy tham gia khi toán trở nên khoa học.

Thị giác / AI → OpenCV hoặc PyTorch

Chỉ cho dự án cụ thể: phát hiện vật (OpenCV) hoặc chạy model (PyTorch — thường qua API, không trên VPS của bạn). Biết chúng tồn tại; vậy là đủ.

Phần 7 · quy trình

Dùng thư viện với AI, từng bước

Cùng bốn bước bạn dùng ở khắp nơi trong khóa học — giờ áp cho code thư viện.

  1. 1

    Đặt tên công việc, không đặt tên hàm

    Nói cho AI kết quả: 'đổi kích thước ảnh upload về 400px và lưu thumbnail.' Công việc chọn thư viện — ở đây là Pillow.

  2. 2

    Kiểm tra imports trước

    Dòng đầu của mọi câu trả lời AI: nó import gì? from PIL import Image → việc ảnh. import torch → việc ML nặng — nên hỏi vì sao.

  3. 3

    Để ý chi phí cài đặt

    Pillow cài rất nhẹ; PyTorch là hàng GB kèm stack GPU. Hỏi phải pip install gì trước khi đồng ý — trên VPS, đĩa và RAM là có thật.

  4. 4

    Chạy, nhìn output

    Lưu kết quả và nhìn: thumbnail đúng kích thước, chart đúng số, gradient ra [2. 4. 6.]. Output là sự thật.

Sáu thư viện, một thói quen: biết việc của từng thư viện, và để AI làm phần còn lại.
— khóa học

NumPy. Biểu đồ. Khoa học. Ảnh. Thị giác. AI. Đó là bộ công cụ.

Tiếp theo: dùng chúng trong một dự án thật. Gặp dòng import lạ? Bạn đã biết nước đi: đặt tên công việc, kiểm chi phí cài, chạy output.