內容簡介
本書專注於從初學邁向進階的
Python編碼技術:如何像專家一樣寫出優雅、準確、簡潔高效的Python單行代碼;閱讀任意一行Python代碼時,如何系統性地對其進行拆解和分析。全書分為6個章節,以單行代碼切入計算機科學的各個領域,包括Python語言基礎、編程技巧、基於NumPy的科學計算、機器學習的主要算法模型、正則表達式進階、計算機科學中若干經典算法的單行實現等。
作者簡介
作者 | Christian Mayer
計算機科學博士,他同時也是Coffee Break Python系列自出版圖書的作者。
譯者 | 蘇丹
網上id一般為su27,2009年畢業於北京師範大學數學系,主要從事後端編程,也曾從事前端與客戶端開發工作。2016年翻譯出版《深入理解Flask》一書。
目錄
導語 ........................................................................................................................ 1
Python 一行流的例子 ................................................................................................... 2
關於可讀性的說明 ....................................................................................................... 3
這本書是給誰看的? ................................................................................................... 4
你會學到什麼? ........................................................................................................... 5
線上資源 ....................................................................................................................... 6
1 Python 溫故知新 ................................................................................................ 7
基本數據結構 ............................................................................................................... 8
數值數據類型和結構 ........................................................................................... 8
布爾值 ................................................................................................................... 8
字元串 ................................................................................................................. 11
關鍵字 None ....................................................................................................... 12
容器數據類型 ............................................................................................................. 13
列表 ..................................................................................................................... 13
堆疊 ..................................................................................................................... 16
集合 ..................................................................................................................... 17
字典 ..................................................................................................................... 19
成員 ..................................................................................................................... 20
XVIII Python 一行流
列表和字典解析 ................................................................................................. 20
控制流 ......................................................................................................................... 21
if、else 和 elif ..................................................................................................... 21
循環 ..................................................................................................................... 22
函式 ............................................................................................................................. 24
lambda 函式 ................................................................................................................. 24
總結 ............................................................................................................................. 25
2 Python 技巧 ..................................................................................................... 27
使用列表解析找出最高收入者 .................................................................................. 28
基礎背景 ............................................................................................................. 28
代碼 ..................................................................................................................... 30
它是如何工作的 ................................................................................................. 31
使用列表解析找出高信息價值的單詞 ...................................................................... 31
基礎背景 ............................................................................................................. 31
代碼 ..................................................................................................................... 32
它是怎么工作的 ................................................................................................. 32
讀取檔案 ..................................................................................................................... 33
基礎背景 ............................................................................................................. 33
代碼 ..................................................................................................................... 34
它是怎么工作的 ................................................................................................. 34
使用 lambda 和 map 函式 ........................................................................................... 35
基礎背景 ............................................................................................................. 35
代碼 ..................................................................................................................... 36
它是如何工作的 ................................................................................................. 37
使用切片查找匹配子串及所處環境 .......................................................................... 38
基礎背景 ............................................................................................................. 38
代碼 ..................................................................................................................... 40
它是如何工作的 ................................................................................................. 41
列表解析和切片 ......................................................................................................... 41
基礎背景 ............................................................................................................. 42
代碼 ..................................................................................................................... 42
它是如何工作的 ................................................................................................. 43
使用切片賦值來修復損壞的列表 .............................................................................. 43
基礎背景 ............................................................................................................. 43
代碼 ..................................................................................................................... 44
它是如何工作的 ................................................................................................. 45
使用列表連線分析心臟健康數據 .............................................................................. 46
基礎背景 ............................................................................................................. 46
代碼 ..................................................................................................................... 48
它是如何工作的 ................................................................................................. 48
使用生成器表達式查出未達最低工資標準的公司 .................................................. 48
基礎背景 ............................................................................................................. 49
代碼 ..................................................................................................................... 49
它是如何工作的 ................................................................................................. 50
使用 zip()函式格式化資料庫 ..................................................................................... 51
基礎背景 ............................................................................................................. 51
代碼 ..................................................................................................................... 52
它是如何工作的 ................................................................................................. 53
總結 ............................................................................................................................. 54
3 數據科學 .......................................................................................................... 55
基礎二維數組計算 ..................................................................................................... 56
基礎背景 ............................................................................................................. 56
代碼 ..................................................................................................................... 59
它是如何工作的 ................................................................................................. 60
使用 NumPy 數組:切片、廣播和數組類型 ........................................................... 61
基礎背景 ............................................................................................................. 61
廣播 ..................................................................................................................... 64
代碼 ..................................................................................................................... 67
它是如何工作的 ................................................................................................. 68
使用條件數組查詢、過濾和廣播檢測異常值 .......................................................... 70
基礎背景 ............................................................................................................. 70
代碼 ..................................................................................................................... 71
它是如何工作的 ................................................................................................. 72
使用布爾索引過濾二維數組 ...................................................................................... 74
基礎背景 ............................................................................................................. 74
代碼 ..................................................................................................................... 75
它是如何工作的 ................................................................................................. 76
使用廣播、切片賦值和重塑清洗固定步長的數組元素 .......................................... 77
基礎背景 ............................................................................................................. 77
代碼 ..................................................................................................................... 80
它是如何工作的 ................................................................................................. 81
NumPy 中何時使用 sort()函式,何時使用 argsort()函式 ........................................ 82
基礎背景 ............................................................................................................. 82
代碼 ..................................................................................................................... 85
它是如何工作的 ................................................................................................. 85
如何使用 lambda 函式和布爾索引來過濾數組 ........................................................ 87
基礎背景 ............................................................................................................. 87
代碼 ..................................................................................................................... 87
它是如何工作的 ................................................................................................. 88
如何使用統計、數學和邏輯來創建高級數組過濾器 .............................................. 89
基礎背景 ............................................................................................................. 89
代碼 ..................................................................................................................... 93
它是如何工作的 ................................................................................................. 94
簡單的關聯分析:買了 X 的人也買了 Y .............................................................. 94
基礎背景 ............................................................................................................. 94
代碼 ..................................................................................................................... 95
它是如何工作的 ................................................................................................. 96
使用中間關聯分析尋找最佳捆綁策略 ...................................................................... 98
基礎背景 ............................................................................................................. 98
代碼 ..................................................................................................................... 98
它是怎么工作的 ................................................................................................. 99
總結 ........................................................................................................................... 100
4 機器學習 ........................................................................................................ 102
監督式機器學習的基礎知識 .................................................................................... 102
訓練階段 ........................................................................................................... 103
推理階段 ........................................................................................................... 104
線性回歸 ................................................................................................................... 104
基礎背景 ........................................................................................................... 104
代碼 ................................................................................................................... 107
它是如何工作的 ............................................................................................... 108
邏輯回歸的一行流 ................................................................................................... 110
基礎背景 ........................................................................................................... 110
Sigmoid 函式 ................................................................................................... 111
代碼 ................................................................................................................... 114
它是如何工作的 ............................................................................................... 114
K-Means 聚類算法一行流 ....................................................................................... 116
基礎背景 ........................................................................................................... 116
代碼 ................................................................................................................... 119
它是如何工作的 ............................................................................................... 120
K-近鄰算法一行流 ................................................................................................... 122
基礎背景 ........................................................................................................... 122
代碼 ................................................................................................................... 124
它是如何工作的 ............................................................................................... 125
神經網路分析一行流 ............................................................................................... 127
XXII Python 一行流
基礎背景 ........................................................................................................... 127
代碼 ................................................................................................................... 132
它是如何工作的 ............................................................................................... 133
決策樹學習一行流 ................................................................................................... 136
基礎背景 ........................................................................................................... 136
代碼 ................................................................................................................... 137
它是如何工作的 ............................................................................................... 138
一行流計算方差最小的數據行 ................................................................................ 139
基礎背景 ........................................................................................................... 139
代碼 ................................................................................................................... 140
它是如何工作的 ............................................................................................... 141
基本統計一行流 ....................................................................................................... 142
基礎背景 ........................................................................................................... 143
代碼 ................................................................................................................... 144
它是如何工作的 ............................................................................................... 145
支持向量機分類一行流............................................................................................ 146
基礎背景 ........................................................................................................... 147
代碼 ................................................................................................................... 148
它是如何工作的 ............................................................................................... 149
隨機森林分類一行流 ............................................................................................... 150
基礎背景 ........................................................................................................... 150
代碼 ................................................................................................................... 152
它是如何工作的 ............................................................................................... 152
總結 ........................................................................................................................... 154
5 正則表達式 .................................................................................................... 155
在字元串中找到基本文本模式 ................................................................................ 155
基礎背景 ........................................................................................................... 156
代碼 ................................................................................................................... 159
它是如何工作的 ............................................................................................... 159
用正則表達式編寫你的第一個網路爬蟲 ................................................................ 160
基礎背景 ........................................................................................................... 160
代碼 ................................................................................................................... 162
它是如何工作的 ............................................................................................... 162
分析 HTML 文檔中的超連結 .................................................................................. 163
基礎背景 ........................................................................................................... 163
代碼 ................................................................................................................... 165
它是如何工作的 ............................................................................................... 166
從字元串中提取美元金額 ........................................................................................ 167
基礎背景 ........................................................................................................... 168
代碼 ................................................................................................................... 169
它是如何工作的 ............................................................................................... 169
找出不安全的 HTTP URL ........................................................................................ 170
基礎背景 ........................................................................................................... 170
代碼 ................................................................................................................... 171
它是如何工作的 ............................................................................................... 171
驗證用戶輸入的時間格式(第一部分) ................................................................ 172
基礎背景 ........................................................................................................... 172
代碼 ................................................................................................................... 173
它是如何工作的 ............................................................................................... 174
驗證用戶輸入的時間格式(第二部分) ................................................................ 174
基礎背景 ........................................................................................................... 175
代碼 ................................................................................................................... 175
它是如何工作的 ............................................................................................... 176
字元串中的重複檢測 ............................................................................................... 176
基礎背景 ........................................................................................................... 176
代碼 ................................................................................................................... 177
它是如何工作的 ............................................................................................... 178
檢測重複單詞 ........................................................................................................... 179
基礎背景 ........................................................................................................... 179
代碼 ................................................................................................................... 179
它是如何工作的 ............................................................................................... 180
用正則模式在多行字元串中進行修改 .................................................................... 181
基礎背景 ........................................................................................................... 181
代碼 ................................................................................................................... 181
它是如何工作的 ............................................................................................... 182
總結 ........................................................................................................................... 183
6 算法 ............................................................................................................... 184
用 lambda 函式及排序找出異形詞 .......................................................................... 185
基礎背景 ........................................................................................................... 185
代碼 ................................................................................................................... 186
它是如何工作的 ............................................................................................... 187
用 lambda 函式和負索引切片找出回文 .................................................................. 188
基礎背景 ........................................................................................................... 188
代碼 ................................................................................................................... 189
它是如何工作的 ............................................................................................... 189
用遞歸階乘函式計算排列數 .................................................................................... 189
基礎背景 ........................................................................................................... 190
代碼 ................................................................................................................... 192
它是如何工作的 ............................................................................................... 192
找到 Levenshtein 距離 .............................................................................................. 194
基礎背景 ........................................................................................................... 194
代碼 ................................................................................................................... 195
它是如何工作的 ............................................................................................... 195
通過函式式編程計算冪集 ........................................................................................ 198
基礎背景 ........................................................................................................... 198
代碼 ................................................................................................................... 200
它是如何工作的 ............................................................................................... 200
用高級索引和列表解析來實現愷撒密碼的加密 .................................................... 201
基礎背景 ........................................................................................................... 201
代碼 ................................................................................................................... 202
它是如何工作的 ............................................................................................... 203
用 Eratosthenes 篩法找出素數 ................................................................................. 204
基礎背景 ........................................................................................................... 204
代碼 ................................................................................................................... 205
它是如何工作的 ............................................................................................... 206
用 reduce()函式計算 Fibonacci 數列 ........................................................................ 211
基礎背景 ........................................................................................................... 211
代碼 ................................................................................................................... 211
它是如何工作的 ............................................................................................... 212
一種遞歸的二分查找算法 ........................................................................................ 214
基礎背景 ........................................................................................................... 214
代碼 ................................................................................................................... 216
它是如何工作的 ............................................................................................... 216
遞歸快速排序算法 ................................................................................................... 217
基礎背景 ........................................................................................................... 218
代碼 ................................................................................................................... 219
它是如何工作的 ............................................................................................... 219
總結 ........................................................................................................................... 220
後記 .................................................................................................................... 221