●前言
第1章 初識Python1
1.1 Python語言概述1
1.1.1 Python簡史1
1.1.2 Python 2和Python 32
1.1.3 Python的特點2
1.1.4 膠水語言3
1.1.5 Python的應用3
1.1.6 學好Python的關鍵4
1.2 Python語言開發環境配置5
1.2.1 使用雲端開發環境Jupyter Notebook(米筐)6
1.2.2 安裝一站式開發環境Anaconda7
1.3 Jupyter Notebook的使用8
1.4 探索Python:乘方、階乘和單詞統計12
1.5 小結13
1.6 習題13
第2章 程序設計入門15
2.1 計算生態與導入庫和函數15
2.1.1 計算生態15
2.1.2 導入庫和函數★16
2.2 結構化程序的框架17
2.2.1 程序的基本處理流程IPO17
2.2.2 任務:計算圓的周長和面積18
2.3 Python程序語法特點分析18
2.3.1 Python的基素18
2.3.2 多行語句21
2.4 Python的6種核心數據類型21
2.5 可變類型和不可變類型22
2.6 數字類型和算術運算23
2.7 程序在線評測繫統及基本使用25
2.7.1 程序在線評測繫統26
2.7.2 程序評測繫統中的HelloWorld:A+B問題26
2.7.3 基本輸入/輸出函數26
2.8 小結29
2.9 習題29
第3章 流程控制32
3.1 分支結構的3種形式32
3.2 解釋型語言的特點34
3.3 for循環35
3.3.1 遍歷容器35
3.3.2 函數range36
3.3.3 多重循環:九九乘法表和水仙花數38
3.4 羅塞塔石碑語言學習法39
3.5 while循環和流程圖41
3.6 改變循環執行流程:break和continue42
3.7 程序的異常處理43
3.8 小結45
3.9 習題46
第4章 字符串49
4.1 字符串的基本知識49
4.1.1 字符串界定符:單引號、雙引號和三重引號49
4.1.2 使用反斜杠轉義49
4.1.3 抑制轉義使用raw50
4.2 序列的索引和切片★51
4.3 字符串的基本操作52
4.3.1 序列操作53
4.3.2 常用的字符串方法53
4.3.3 匹配字符串的前綴和後綴55
4.3.4 切分和合並字符串★55
4.4 字符串格式化和輸出語句56
4.5 中文分詞和jieba庫57
4.6 小結58
4.7 習題59
第5章 組合數據類型61
5.1 組合數據類型:序列、集合和映射61
5.2 List列表:批量處理62
5.2.1 列表的常用操作62
5.2.2 列表的遍歷和排序64
5.2.3 列表的引用和復制65
5.3 tup組:不可變、組合66
5.4 dict字典:按鍵取值68
5.5 set集合:去重71
5.6 列表生成式★72
5.7 生成器表達式和惰性求值74
5.8 小結74
5.9 習題75
第6章 函數78
6.1 認識函數78
6.2 使用函數實現機器翻譯80
6.3 函數的參數82
6.3.1 可選參數和默認值82
6.3.2 位置參數傳遞82
6.3.3 關鍵字參數傳遞83
6.3.4 不定長參數83
6.4 函數式編程和高階函數85
6.5 匿名函數lambda★86
6.6 常用高階函數:map、reduce和filter86
6.7 遞歸函數88
6.8 變量的作用域 LEGB原則90
6.8.1 函數被調用的次數90
6.8.2 斐波那契函數優化1:全局字典91
6.8.3 斐波那契函數優化2:內嵌函數91
6.9 小結91
6.10 習題92
第7章 文件操作96
7.1 認識文件96
7.2 文本文件及讀寫操作97
7.2.1 讀取文件全文97
7.2.2 按行讀取文件98
7.2.3 實現文件的編碼格式轉換98
7.2.4 使用with-as語句99
7.3 處理表格數據(CSV)的3種方法100
7.4 存儲半結構化數據:JSON101
7.5 常用文件模塊os和shutil102
7.6 模塊和包105
7.7 小結107
7.8 習題107
第8章 正則表達式109
8.1 正則表達式簡介109
8.2 Python中的常用正則函數109
8.2.1 正則函數初步使用110
8.2.2 查找所有匹配(re.findall)111
8.2.3 查找第一個匹配(re.search)112
8.2.4 替換(re.sub)114
8.3 RegexOne的闖關遊戲115
8.3.1 闖關:通配符116
8.3.2 闖關:排除特定字符116
8.3.3 闖關:重復次數117
8.4 編譯模式re.compile和匹配參數117
8.5 小結118
8.6 習題118
第9章 爬蟲入門120
9.1 網絡爬蟲簡介及基本處理流程120
9.1.1 網絡爬蟲的概念120
9.1.2 使用爬蟲的風險120
9.1.3 網絡爬蟲的基本處理流程121
9.2 實戰:Pandas獲取中國企業500強榜單122
9.3 使用requests庫獲取網頁123
9.4 使用BeautifulSoup4庫解析網頁124
9.4.1 從節點中提取信息125
9.4.2 獲取節點的主要方式126
9.5 實戰:爬取唐詩三百首128
9.6 小結131
9.7 習題131
第10章 科學計算入門之NumPy132
10.1 科學計算和NumPy132
10.2 NumPy的基本對像133
10.2.1 代碼向量化133
10.2.2 通用函數ufunc133
10.3 統計函數的應用:分析學生成績134
10.4 核心數據結構:多維數組135
10.5 使用NumPy表示和處理圖像137
10.6 小結139
10.7 習題140
第11章 數據分析入門之Pandas141
11.1 從Excel到Pandas:制作產品銷售數據表141
11.2 DataFrame的基本操作143
11.2.1 查看DataFrame對像的方法和屬性143
11.2.2 DataFrame的基礎數據結構 Series145
11.2.3 列名操作:查看和修改146
11.3 DataFrame的常用操作146
11.3.1 設置和重置索引146
11.3.2 切片148
11.3.3 條件選擇150
11.3.4 排序150
11.4 分組聚合:日常費用統計表151
11.5 小結155
11.6 習題155
第12章 數據可視化入門157
12.1 Matplotlib的基本用法157
12.1.1 Python繪圖基礎:Matplotlib157
12.1.2 實例:繪制正弦曲線157
12.1.3 實例:2017年全球GDP排名前4的國家158
12.2 Matplotlib的兩種接口159
12.2.1 MATLAB風格接口159
12.2.2 面向對像接口160
12.3 使用Pandas可視化數據160
12.4 簡捷作圖工具:seaborn162
12.5 詞雲圖164
12.5.1 英文詞雲實例:愛麗絲夢遊仙境164
12.5.2 中文詞雲實例:《促進新一代人工智能產業發展三年行動計劃》詞雲圖166
12.6 小結167
12.7 習題167
第13章 面向對像程序設計170
13.1 認識面向對像編程170
13.1.1 面向對像編程170
13.1.2 面向對像的優點170
13.1.3 OOP術語概述171
13.2 類和對像171
13.2.1 實例:采用面向過程和面向對像的程序設計處理學生成績171
13.2.2 類的構成173
13.2.3 類的專有方法173
13.2.4 實例屬性和類屬性174
13.2.5 類方法和靜態方法174
13.3 數據封裝175
13.4 繼承177
13.4.1 繼承的優點:代碼重用177
13.4.2 重載方法178
13.5 多態179
13.6 運算符重載180
13.7 小結181
13.8 習題181
第14章 機器學習入門183
14.1 初識機器學習183
14.1.1 機器學習:新的編程範式183
14.1.2 入門示例:預測房屋價格184
14.1.3 機器學習處理流程186
14.1.4 機器學習庫sklearn187
14.1.5 機器學習的分類188
14.2 分類實戰:預測鳶尾花的類型189
14.2.1 鳶尾花數據集描述189
14.2.2 數據探索189
14.2.3 使用kNN模型預測192
14.2.4 數據集的劃分:訓練集、驗證集、測試集193
14.2.5 分類模型的評價指標194
14.2.6 k折交叉驗證196
14.3 回歸實戰:預測波士頓房價197
14.3.1 波士頓房價問題描述197
14.3.2 獲取內置數據集的基本信息198
14.3.3 數據探索199
14.3.4 使用線性回歸模型預測201
14.3.5 回歸模型的評價指標202
14.4 欠擬合和過擬合203
14.5 機器學習常用方法簡要介紹203
14.6 小結205
14.7 習題206
第15章 深度學習入門207
15.1 初識深度學習207
15.1.1 深度學習的歷史207
15.1.2 推動深度學習的三駕馬車:硬件、數據和算法208
15.1.3 機器學習、深度學習和人工智能209
15.1.4 深度學習框架209
15.2 神經網絡實戰:印第安人糖尿病診斷211
15.2.1 任務描述211
15.2.2 多層神經網絡的實現211
15.3 神經網絡的基本原理214
15.3.1:權重、偏差和激活函數214
15.3.2 多層神經網絡215
15.3.3 損失函數和優化器216
15.4 實戰:識別手寫數字217
15.4.1 任務描述:MNIST手寫數字217
15.4.2 多層神經網絡的實現218
15.4.3 卷積神經網絡的實現221
15.5 卷積神經網絡223
15.5.1 圖像的3個特點223
15.5.2 卷積神經網絡的結構224
15.5.3 卷積神經網絡的兩個特征225
15.5.4 卷積層:卷積核和特征圖226
15.5.5 池化層226
15.5.6 全連接層227
15.6 小結227
15.7 習題228
參考文獻230
本書全面地介紹了Python程序設計的核心技能,以及Python在數據分析、人工智能等領域的應用。全書共15章,分為三大部分:①Python核心技能,包括初識Python、程序設計入門、流程控制、字符串、組合數據類型、函數、文件操作7章;②數據分析技能,包括正則表達式、爬蟲入門、科學計算入門之NumPy、數據分析入門之Pandas、數據可視化入門5章;③人工智能初步,包括面向對像程序設計、機器學習入門、深度學習入門3章。本書圖文並茂、示例豐富,以“任務驅動”的方式在實際應用中講解Python的要點,並且將程序設計在線評測繫統引入了教學,讓讀者及時評估自己的水平。本書配有豐富的學習資源,包括視頻、PPT、速查表、電子教案、習題、習題解析等。本書可以作為應用型本科計算機、人工智能、大數據相關專業的教材,也可以作為Python程序設計、數據分析、人工智能入門的培訓教材,還可以作為廣大程序設計愛好等