用 NumPy 學線性代數:把矩陣變成看得見的幾何#
本書是一本 用 NumPy 親手運算與畫圖來學線性代數 的書。
線性代數是所有現代科技的地基 —— 電腦繪圖、機器學習、量子計算、Google 搜尋,底層都是矩陣運算。但傳統課程常陷在「手算行列式」的泥沼,學生算了一學期卻不明白矩陣 到底是什麼。
本書的答案:線性代數是幾何。矩陣是空間的變換、特徵向量是變換下不動的方向、行列式是面積(體積)的縮放比。每個概念都用 NumPy 算一遍、用 Matplotlib 畫出來 —— 讓 \(A\mathbf{v}\) 不再是符號操作,而是你 親眼看見 向量被拉伸旋轉的過程。
路線:向量與矩陣 → 解方程組 → 幾何變換 → 特徵值分解 → 奇異值分解(SVD)→ 應用(影像壓縮、PageRank、PCA、最小平方)。讀完本書,你將同時掌握線性代數的 幾何直覺 與 NumPy 實作能力 —— 這是機器學習與資料科學的入場券。
本書特色#
- 幾何優先:每個代數操作都配圖(2D 向量場、變換網格、特徵向量可視化),先看見再計算
- NumPy 為主:全書用 NumPy/SciPy 實作,順手建立陣列思維(broadcasting、向量化)
- 可視化工具箱:第 1 章就建立一個自己的「向量繪圖函式庫」,之後每章重複使用
- 應用驅動:每章末尾有真實應用(影像壓縮、Google PageRank、推薦系統、PCA)
- 零背景入門:只需高中數學與一點 Python,第一章把 NumPy 基礎補齊
目錄#
-
第1章-線性代數是幾何:NumPy 起點
-
第2章-矩陣:空間的變換
-
第3章-解線性方程組
-
第4章-子空間與基底
-
第5章-特徵值與特徵向量
-
第6章-正交性與分解
-
第7章-奇異值分解(SVD):線性代數的瑞士刀
-
第8章-應用專題
-
第9章-數值計算的真相
-
第10章-邁向機器學習
閱讀方式#
- 看圖算矩陣:每個概念先畫圖建立幾何直覺,再用 NumPy 驗證
- 工具箱常伴:1.4 建立的繪圖函式庫貫穿全書,建議存成
linalg_viz.py重複 import - 章節依賴:第 1–6 章是線性代數主線,第 7 章是高潮(SVD),第 8–10 章是應用與展望
- 趕時間的讀者:2.1 → 2.4 → 5.1 → 6.3 → 7 這條主軸可快速抵達 SVD
需要的背景知識#
- 高中數學(三角函數會在第 2 章旋轉矩陣用到,附複習)
- 一點 Python 基礎;第 1 章完整補齊 NumPy
- 不需任何線性代數背景 —— 這正是本書要教的
與本系列其他書的關係#
- 《用 SymPy 學數學》第 6 章:用 SymPy 做 精確符號 矩陣運算;本書用 NumPy 做 數值與幾何 線性代數
- 《用 Python 學機率統計》:特徵向量與馬可夫鏈(5.4)在統計中的延伸
- 《用 Lean 學數學》:如果你想 證明 線性代數定理(如譜定理),請往那邊走