Python極客編程:用代碼探索世界 Real-World Python: A Hacker's Guide to Solving Problems with Code

[美]李·沃恩(Lee Vaughan)

  • Python極客編程:用代碼探索世界-preview-1
  • Python極客編程:用代碼探索世界-preview-2
Python極客編程:用代碼探索世界-preview-1

商品描述

本書包含16個有趣的編程項目,共分為12章。每章從一個明確的項目目標開始,引導讀者像程序員一樣思考解決問題的方法並完成任務。本書介紹用貝葉斯法則確定事件概率,用自然語言處理技術分析語料庫,用collections和random等模塊加密字符,用OpenCV和NumPy等庫實現圖像差異檢測、圖像屬性測量、人臉檢測、人臉識別等電腦視覺應用,用turtle模塊模擬圖像移動軌跡,用pandas庫分析數據,用bokeh等庫進行數據可視化。通過對本書的學習,讀者將學會使用Python創建完整、實用的Python程序。

本書能幫助Python初學者理解編程思想並培養Python編程技能,也能幫助有一定編程基礎的Python程序員從項目實戰中獲得解決實際問題的啟發。

作者簡介

李·沃恩(Lee Vaughan)是一位程序员、流行文化爱好者、教育工作者。作为埃克森美孚公司的前主管级科学家,他负责构建和审查计算机模型,开发和测试软件,并培训地质学家和工程师。除了本书,他还撰写了《Python编程实战——妙趣横生的项目之旅》,他通过这两本书帮助读者提升Python技能,并使读者在学习的过程中获得乐趣!

目錄大綱

第 1章 用貝葉斯法則營救失事船隻的船員 1

1.1 貝葉斯法則 1

1.2 項目1:搜索和救援 4

1.2.1 策略 4

1.2.2 安裝Python庫 5

1.2.3 貝葉斯代碼 7

1.2.4 玩游戲 18

1.3 小結 19

1.4 延伸閱讀 20

1.5 挑戰項目:更聰明的搜索 20

1.6 挑戰項目:用蒙特卡洛模擬尋找最佳策略 20

1.7 挑戰項目:計算檢測概率 20

第 2章 用計量文體學來確定作者的身份 22

2.1 項目2:《巴斯克維爾的獵犬》《世界大戰》和《失落的世界》 22

2.1.1 策略 23

2.1.2 安裝NLTK 23

2.1.3 語料庫 26

2.1.4 計量文體學代碼 26

2.2 小結 38

2.3 延伸閱讀 39

2.4 實踐項目:用分散圖分析《巴斯克維爾的獵犬》 39

2.5 實踐項目:標點符號熱圖 40

2.6 挑戰項目:修正頻率 41

第3章 用自然語言處理總結演講 42

3.1 項目3:《我有一個夢想》總結演講稿! 42

3.1.1 策略 43

3.1.2 網頁抓取 43

3.1.3 《我有一個夢想》的代碼 43

3.2 項目4:用gensim總結演講內容 50

3.2.1 安裝gensim 50

3.2.2 《整理你的床》的代碼 51

3.3 項目5: 用詞雲總結文本 53

3.3.1 詞雲和PIL模塊 53

3.3.2 詞雲的代碼 54

3.3.3 微調詞雲 57

3.4 小結 59

3.5 延伸閱讀 59

3.6 挑戰項目:游戲之夜 59

3.7 挑戰項目:對總結進行總結 60

3.8 挑戰項目:小說總結 61

3.9 挑戰項目:不只是你說什麽,而是你怎麽說! 62

第4章 使用書籍密碼發送超級秘密消息 63

4.1 一次性密碼本 63

4.2 瑞貝卡密碼 65

4.3 項目6:Rebecca的數字密鑰 65

4.3.1 策略 66

4.3.2 加密代碼 67

4.3.3 發送消息 74

4.4 小結 74

4.5 延伸閱讀 74

4.6 實踐項目:對字符繪圖 75

4.7 實踐項目:發送秘密 76

第5章 發現冥王星 78

5.1 項目7:復制閃爍比較器 79

5.1.1 策略 80

5.1.2 數據 80

5.1.3 閃爍比較器代碼 81

5.1.4 使用閃爍比較器 91

5.2 項目8:用圖像差異探測瞬變天體 93

5.2.1 策略 93

5.2.2 瞬變探測器代碼 93

5.2.3 使用瞬變探測器 98

5.3 小結 98

5.4 延伸閱讀 99

5.5 實踐項目:繪制軌道路徑 99

5.6 實踐項目:區別是什麽 99

5.7 挑戰項目:數星星 100

第6章 模擬阿波羅8號的自由返回軌跡 101

6.1 理解阿波羅8號任務 102

6.1.1 自由返回軌跡 102

6.1.2 三體問題 103

6.2 項目9:與阿波羅8號一起登月! 103

6.2.1 使用turtle模塊 104

6.2.2 策略 107

6.2.3 阿波羅8號自由返回的代碼 108

6.2.4 運行模擬 118

6.3 小結 120

6.4 延伸閱讀 120

6.5 實踐項目:模擬搜索模式 120

6.6 實踐項目:讓CSM啟動 122

6.7 實踐項目:讓CSM停下來 122

6.8 挑戰項目:真實比例模擬 123

6.9 挑戰項目:真正的阿波羅8號 123

第7章 選擇火星著陸點 124

7.1 如何登陸火星 124

7.2 MOLA地圖 125

7.3 項目10:選擇火星登陸點 126

7.3.1 策略 126

7.3.2 地點選擇器代碼 127

7.3.3 結果 140

7.4 小結 141

7.5 延伸閱讀 141

7.6 實踐項目:確認繪畫成為圖像的一部分 142

7.7 實踐項目:提取高程剖面圖 142

7.8 實踐項目:3D繪圖 143

7.9 實踐項目:混合地圖 143

7.10 挑戰項目:三人成列 145

7.11 挑戰項目:繞回矩形 145

第8章 探測遙遠的系外行星 147

8.1 凌星測光法 147

8.2 項目11:模擬系外行星的凌星過程 149

8.2.1 策略 150

8.2.2 凌星代碼 150

8.2.3 凌星測光實驗 155

8.3 項目12:系外行星成像 157

8.3.1 策略 157

8.3.2 Pixelator代碼 159

8.4 小結 163

8.5 延伸閱讀 163

8.6 實踐項目:探測外星巨型建築 164

8.7 實踐項目:探測小行星凌星 165

8.8 實踐項目:考慮臨邊昏暗 166

8.9 實踐項目:探測星斑 169

8.10 實踐項目:探測外星艦隊 169

8.11 實踐項目:探測有月亮的行星 170

8.12 實踐項目:測量系外行星的日長 170

8.13 挑戰項目:生成動態光度曲線 171

第9章 識別朋友或敵人 172

9.1 檢測照片中的人臉 172

9.2 項目13:編寫機器人哨兵炮程序 173

9.2.1 策略 175

9.2.2 代碼 175

9.2.3 結果 185

9.3 從視頻流中檢測人臉 186

9.4 小結 189

9.5 延伸閱讀 189

9.6 實踐項目:模糊人臉 189

9.7 挑戰項目:檢測貓臉 190

第 10章 用人臉識別限制訪問 191

10.1 用局部二進制模式直方圖識別人臉 191

10.1.1 人臉識別流程圖 192

10.1.2 提取局部二進制模式直方圖 193

10.2 項目14:限制接觸外星製品 195

10.2.1 策略 195

10.2.2 支持模塊和文件 196

10.2.3 視頻採集代碼 196

10.2.4 人臉訓練器代碼 200

10.2.5 人臉預測器代碼 202

10.2.6 結果 204

10.3 小結 205

10.4 延伸閱讀 205

10.5 挑戰項目:添加密碼和視頻採集 205

10.6 挑戰項目:長得像和雙胞胎 206

10.7 挑戰項目:時間機器 206

第 11章 創建交互式僵屍逃離地圖 207

11.1 項目15:用地區分佈圖實現人口密度可視化 207

11.1.1 策略 208

11.1.2 Python數據分析庫 208

11.1.3 bokeh和holoviews庫 210

11.1.4 安裝pandas、bokeh和holoviews 210

11.1.5 訪問縣、州、失業和人口數據 210

11.1.6 侵入holoviews 212

11.1.7 地區分佈圖代碼 214

11.1.8 計劃逃離 220

11.2 小結 223

11.3 延伸閱讀 224

11.4 挑戰項目:繪制美國人口變化圖 224

第 12章 我們生活在電腦模擬中嗎 225

12.1 項目16:生命、宇宙和耶爾特的池塘 225

12.1.1 池塘模擬代碼 226

12.1.2 池塘模擬的影響 228

12.1.3 測量穿越格子的成本 230

12.1.4 結果 232

12.1.5 策略 232

12.2 小結 233

12.3 延伸閱讀 233

12.4 繼續前進 234

12.5 挑戰項目:尋找安全空間 234

12.6 挑戰項目:太陽來了 235

12.7 挑戰項目:通過狗的眼睛看 235

12.8 挑戰項目:自定義單詞搜索 235

12.9 挑戰項目:簡化慶典幻燈片 235

12.10 挑戰項目:編織一張糾結的網 235

12.11 挑戰項目:走,去山上告訴它 236

附錄 實踐項目解決方案 237