內容簡介
圖書目錄
審稿人評論
譯者序
前言
作者簡介
開始閱讀本書之前
第一部分汗匙連您 Python基礎知識快速入門
第1章 Python及大數據概述2
1.1 簡介2
1.2 快速回顧面向對象技術的基礎知識3
1.3 Python5
1.4 Python庫7
1.4.1 Python標準庫7
1.4.2 數據科學庫8
1.5 試用IPython和Jupyter Notebook9
1.5.1 使用IPython互動模式作為計算器10
1.5.2 使用IPython 解釋器執行Python程式11
1.5.3 在Jupyter Notebook中編寫和執行代碼12
1.6 雲和物聯微白說網16
1.6.1 雲16
1.6.2 物聯網17
1.7 大數據有多大18
1.7.1 大數據分析22
1.7.2 數據科學和大數據正在帶來改變:用例23
1.8 案例研究:大數據移動應用程式24
1.9 數據科學入門:人工智慧——計算機科學與數據科學的交叉學科26
1.10 小結28
第2章 Python程式設計概述29
2.1 簡介29
2.2 變數和賦值語句30
2.3 算術運算31
2.4 print函式、單引號和雙引號34
2.5 三引號字元串36
2.6 從用戶處獲取輸入37
2.7 決策:if語句和比較運算符39
2.8 對象和動態類型43
2.9 數據科學入門:基礎的描述性統計44
2.10 小結46
第3章 控制戒判籃語句48
3.1 簡介48
3.2 控制語句概述49
3.3 if語句49
3.4 if...else和if...elif...else語句50
3.5 while語句53
3.6 for語句54
3.6.1 可疊代對象、列表和疊代影妹尋器55
3.6.2 內置函式range55
3.7 增強賦值56
3.8 序列控制疊代和格式化字元串56
3.9 邊界值控制的疊代57
3.10 內置函式range:深入討論59
3.11 使用Decimal類型處理貨幣金額59
3.12 break和continue語句63
3.13 布爾運算符and、or和not63
3.14 數據科學入門:集中趨勢度量—均值、中值和眾數66
3.15 小結67
第4章 函式69
4.1 簡介69
4.2 函式定義70
4.3 多參數函式72
4.4 隨機數生成74
4.5 案例研究:一個運氣遊戲76
4.6 Python標準庫79
4.7 math模組中的函式80
4.8 在IPython中使用制表符自動補全81
4.9 默認參數值82
4.10 關鍵字參數83
4.11 不定長參數列表83
4.12 方法:屬於對象的函式84
4.13 作用域規則85
4.14 import:深入討論87
4.15 向函式傳遞參數:深入討論己探戀88
4.16 遞歸91
4.17 函式式編程93
4.18 數據科學入門:離中趨勢度量95
4.19 小結96
第5章 序列:列表和元組97
5.1 簡介97
5.2 列表98
5.3 元組102
5.4 序列解包104
5.5 序列切片106
5.6 使用del聲明108
5.7 將列表傳遞給函式109
5.8 列表排序110
5.9 序列搜尋111
5.10 列表的其他方法113
5.11 使用列表模擬堆疊115
5.12 列表推導式116
5.13 生成器表達式118
5.14 過濾、映射和歸約118
5.15 其他的序列處理函式120
5.16 二維列表122
5.17 數據科學入門:模擬和靜態可視化124
5.17.1 擲600、60,000、6,000,000次骰子的圖例124
5.17.2 實現擲骰子中不同點數出現次數和百分比的可視化126
5.18 小結132
第二部分 Python數據結構、字元串和檔案
第6章 字典和集合136
6.1 簡介136
6.2 字典137
6.2.1 創建字典137
6.2.2 遍歷字典138
6.2.3 基本的字典操作138
6.2.4 字典的keys和values方法140
6.2.5 字典的比較141
6.2.6 示例:學生成績字典142
6.2.7 示例:單詞計數143
6.2.8 字典的update方法144
6.2.9 字典推導式145
6.3 集合146
6.3.1 集合的比較147
6.3.2 集合的數學運算148
6.3.3 集合的可變運算符和方法150
6.3.4 集合推導式151
6.4 數據科學入門:動態可視化151
6.4.1 動態可視化的工作原理152
6.4.2 實現動態可視化154
6.5 小結156
第7章 使用NumPy進行面向數組的編程158
7.1 簡介158
7.2 從現有數據創建數組159
7.3 數組屬性160
7.4 用特定值填充數組162
7.5 從範圍創建數組162
7.6 列表與數組的性能比較:引入%timeit164
7.7 數組運算符165
7.8 NumPy計算方法167
7.9 通用函式168
7.10 索引和切片170
7.11 視圖:淺拷貝171
7.12 視圖:深拷貝173
7.13 重塑和轉置174
7.14 數據科學入門:pandas Series和DataFrame176
7.14.1 Series177
7.14.2 DataFrame181
7.15 小結188
第8章 字元串:深入討論190
8.1 簡介190
8.2 格式化字元串191
8.2.1 表示類型191
8.2.2 欄位寬度和對齊方式193
8.2.3 數字格式化193
8.2.4 字元串的format方法194
8.3 拼接和重複字元串195
8.4 去除字元串中的空白字元196
8.5 字元大小寫轉換196
8.6 字元串的比較運算符197
8.7 查找子字元串197
8.8 替換子字元串199
8.9 字元串拆分和連線199
8.10 字元串測試方法201
8.11 原始字元串202
8.12 正則表達式介紹202
8.12.1 re模組與fullmatch函式203
8.12.2 替換子字元串和拆分字元串207
8.12.3 其他搜尋功能、訪問匹配207
8.13 數據科學入門:pandas、正則表達式和數據治理210
8.14 小結214
第9章 檔案和異常215
9.1 簡介215
9.2 檔案216
9.3 文本檔案處理217
9.3.1 向文本檔案中寫入數據:with語句的介紹217
9.3.2 從文本檔案中讀取數據218
9.4 更新文本檔案220
9.5 使用JSON進行序列化221
9.6 關注安全:pickle序列化和反序列化224
9.7 關於檔案的附加說明224
9.8 處理異常225
9.8.1 被零除和無效輸入226
9.8.2 try語句226
9.8.3 在一條except子句中捕獲多個異常229
9.8.4 一個函式或方法引發了什麼異常229
9.8.5 try子句的語句序列中應該書寫什麼代碼229
9.9 finally子句229
9.10 顯式地引發一個異常231
9.11 (選學)堆疊展開和回溯232
9.12 數據科學入門:使用CSV檔案234
9.12.1 Python標準庫模組csv234
9.12.2 將CSV檔案數據讀入pandas DataFrame中236
9.12.3 讀取鐵達尼號災難數據集237
9.12.4 用鐵達尼號災難數據集做簡單的數據分析238
9.12.5 乘客年齡直方圖239
9.13 小結240
第三部分 Python高級主題
第10章 面向對象編程242
10.1 簡介242
10.2 自定義Account類244
10.2.1 試用Account類245
10.2.2 Account類的定義246
10.2.3 組合:對象引用作為類的成員248
10.3 屬性訪問控制248
10.4 用於數據訪問的property249
10.4.1 試用Time類249
10.4.2 Time類的定義251
10.4.3 Time類定義的設計說明254
10.5 模擬“私有”屬性255
10.6 案例研究:洗牌和分牌模擬257
10.6.1 試用Card類和DeckOfCards類257
10.6.2 Card類:引入類屬性258
10.6.3 DeckOfCards類260
10.6.4 利用Matplotlib顯示撲克牌圖像262
10.7 繼承:基類和子類265
10.8 構建繼承層次結構:引入多態性267
10.8.1 基類CommissionEmployee267
10.8.2 子類SalariedCommission-Employee270
10.8.3 以多態方式處理Commission-Employee和SalariedComm-issionEmployee273
10.8.4 關於基於對象和面向對象編程的說明274
10.9 鴨子類型和多態性274
10.10 運算符重載276
10.10.1 試用Complex類277
10.10.2 Complex類的定義278
10.11 異常類層次結構和自定義異常279
10.12 具名元組280
10.13 Python 3.7的新數據類簡介281
10.13.1 創建Card數據類282
10.13.2 使用Card數據類284
10.13.3 數據類相對於具名元組的優勢286
10.13.4 數據類相對於傳統類的優勢286
10.14 使用文檔字元串和doctest進行單元測試286
10.15 命名空間和作用域290
10.16 數據科學入門:時間序列和簡單線性回歸293
10.17 小結300
第四部分 人工智慧、雲和大數據案例研究
第11章 自然語言處理304
11.1 簡介304
11.2 TextBlob305
11.2.1 創建一個TextBlob對象307
11.2.2 將文本標記為句子和單詞307
11.2.3 詞性標註308
11.2.4 提取名詞短語309
11.2.5 使用TextBlob的默認情感分析器進行情感分析309
11.2.6 使用NaiveBayesAnalyzer進行情感分析310
11.2.7 語言檢測與翻譯311
11.2.8 變形:複數化和單數化312
11.2.9 拼寫檢查和拼寫校正313
11.2.10 規範化:詞幹提取和詞形還原314
11.2.11 詞頻314
11.2.12 從WordNet中獲取單詞定義、同義詞和反義詞315
11.2.13 刪除停用詞317
11.2.14 n元318
11.3 使用柱狀圖和詞雲可視化詞頻319
11.3.1 使用pandas可視化詞頻319
11.3.2 使用詞雲可視化詞頻321
11.4 使用Textatistic庫進行可讀性評估324
11.5 使用spaCy命名實體識別326
11.6 使用spaCy進行相似性檢測327
11.7 其他NLP庫和工具328
11.8 機器學習和深度學習自然語言套用328
11.9 自然語言數據集329
11.10 小結329
第12章 Twitter數據挖掘331
12.1 簡介331
12.2 Twitter API概況333
12.3 創建一個Twitter賬戶334
12.4 獲取Twitter憑據,創建應用程式334
12.5 什麼是推文336
12.6 Tweepy339
12.7 通過Tweepy進行Twitter身份驗證340
12.8 獲取一個Twitter賬戶的相關信息341
12.9 Tweepy Cursor簡介:獲得一個賬戶的關注者和朋友343
12.9.1 確定一個賬戶的關注者343
12.9.2 確定一個賬戶的關注對象345
12.9.3 獲取一個用戶的最新推文345
12.10 搜尋最新的推文346
12.11 熱門話題發現:Twitter熱門話題API348
12.11.1 有熱門話題的地點348
12.11.2 獲取熱門話題列表349
12.11.3 根據熱門話題創建詞雲351
12.12 推文分析前的清理或預處理352
12.13 Twitter流API353
12.13.1 創建StreamListener的子類353
12.13.2 啟動流處理356
12.14 推文情感分析357
12.15 地理編碼和映射361
12.15.1 獲取和映射推文362
12.15.2 tweetutilities.py中的實用函式366
12.15.3 LocationListener類367
12.16 存儲推文的方法368
12.17 Twitter和時間序列369
12.18 小結369
第13章 IBM Watson和認知計算370
13.1 簡介370
13.2 IBM雲賬戶和雲控制台372
13.3 Watson服務372
13.4 額外的服務和工具375
13.5 Watson開發者雲Python SDK377
13.6 案例研究:旅行者翻譯伴侶APP377
13.6.1 準備工作378
13.6.2 運行APP379
13.6.3 SimpleLanguageTranslator.py腳本代碼分析380
13.7 Watson資源390
13.8 小結391
第14章 機器學習:分類、回歸和聚類392
14.1 簡介392
14.1.1 scikit-learn393
14.1.2 機器學習的類別394
14.1.3 scikit-learn中內置的數據集396
14.1.4 典型的數據科學研究的步驟396
14.2 案例研究:用k近鄰算法和Digits數據集進行分類(第1部分)397
14.2.1 k近鄰算法398
14.2.2 載入數據集399
14.2.3 可視化數據402
14.2.4 拆分數據以進行訓練和測試404
14.2.5 創建模型405
14.2.6 訓練模型405
14.2.7 預測數字類別406
14.3 案例研究:利用k近鄰算法和Digits數據集進行分類(第2部分)407
14.3.1 模型準確性指標407
14.3.2 k折交叉驗證410
14.3.3 運行多個模型以找到最佳模型411
14.3.4 超參數調整413
14.4 案例研究:時間序列和簡單線性回歸413
14.5 案例研究:基於加利福尼亞房價數據集的多元線性回歸418
14.5.1 載入數據集418
14.5.2 使用pandas探索數據420
14.5.3 可視化特徵422
14.5.4 拆分數據以進行訓練和測試426
14.5.5 訓練模型426
14.5.6 測試模型427
14.5.7 可視化預測房價和期望房價427
14.5.8 回歸模型指標428
14.5.9 選擇最佳模型429
14.6 案例研究:無監督學習(第1部分)—降維430
14.7 案例研究:無監督學習(第2部分)—k均值聚類433
14.7.1 載入Iris數據集435
14.7.2 探索Iris數據集:使用pandas進行描述性統計436
14.7.3 使用Seaborn的pairplot可視化數據集438
14.7.4 使用KMeans估計器440
14.7.5 主成分分析降維442
14.7.6 選擇最佳聚類估計器444
14.8 小結445
第15章 深度學習447
15.1 簡介447
15.1.1 深度學習套用449
15.1.2 深度學習演示450
15.1.3 Keras資源450
15.2 Keras內置數據集450
15.3 自定義Anaconda環境451
15.4 神經網路452
15.5 張量454
15.6 用於視覺的卷積神經網路:使用MNIST數據集進行多分類455
15.6.1 載入MNIST數據集457
15.6.2 數據探索457
15.6.3 數據準備459
15.6.4 創建神經網路模型461
15.6.5 訓練和評價模型468
15.6.6 保存和載入模型472
15.7 用TensorBoard可視化神經網路的訓練過程473
15.8 ConvnetJS:基於瀏覽器的深度學習訓練和可視化476
15.9 針對序列的遞歸神經網路:使用IMDb數據集進行情感分析477
15.9.1 載入IMDb影評數據集478
15.9.2 數據探索478
15.9.3 數據準備480
15.9.4 創建神經網路481
15.9.5 訓練和評價模型483
15.10 調整深度學習模型484
15.11 在ImageNet上預訓練的CNN模型485
15.12 小結486
第16章 大數據:Hadoop、Spark、NoSQL和IoT488
16.1 簡介488
16.2 關係資料庫和結構化查詢語言492
16.2.1 books資料庫493
16.2.2 SELECT查詢497
16.2.3 WHERE子句497
16.2.4 ORDER BY子句498
16.2.5 從多個表中合併數據:INNER JOIN499
16.2.6 INSERT INTO語句500
16.2.7 UPDATE語句501
16.2.8 DELETE FROM語句502
16.3 NoSQL和NewSQL大數據資料庫簡述502
16.3.1 NoSQL鍵-值資料庫503
16.3.2 NoSQL文檔資料庫503
16.3.3 NoSQL列式資料庫504
16.3.4 NoSQL圖資料庫504
16.3.5 NewSQL資料庫505
16.4 案例研究:MongoDB JSON文檔資料庫506
16.4.1 創建MongoDB Atlas集群506
16.4.2 將推文存入MongoDB中507
16.5 Hadoop515
16.5.1 概述516
16.5.2 通過MapReduce匯總Romeo-AndJuliet.txt中的單詞長度518
16.5.3 在Microsoft Azure HDInsight中創建Apache Hadoop集群518
16.5.4 Hadoop流520
16.5.5 實現映射器520
16.5.6 實現歸約器521
16.5.7 準備運行MapReduce示例522
16.5.8 運行MapReduce作業523
16.6 Spark525
16.6.1 概述525
16.6.2 Docker和Jupyter Docker堆疊526
16.6.3 使用Spark的單詞計數529
16.6.4 Microsoft Azure上的Spark單詞計數532
16.7 Spark流:使用pyspark-notebookDocker堆疊計算Twitter主題標籤535
16.7.1 將推文流式傳輸到套接字535
16.7.2 總結推文主題標籤,介紹Spark SQL538
16.8 物聯網和儀錶板543
16.8.1 發布和訂閱545
16.8.2 使用Freeboard儀錶板可視化PubNub示例實時流545
16.8.3 用Python模擬一個連線網際網路的恆溫器547
16.8.4 使用freeboard.io創建儀錶板549
16.8.5 創建一個Python PubNub訂閱伺服器550
16.9 小結554
索引556
第3章 控制語句48
3.1 簡介48
3.2 控制語句概述49
3.3 if語句49
3.4 if...else和if...elif...else語句50
3.5 while語句53
3.6 for語句54
3.6.1 可疊代對象、列表和疊代器55
3.6.2 內置函式range55
3.7 增強賦值56
3.8 序列控制疊代和格式化字元串56
3.9 邊界值控制的疊代57
3.10 內置函式range:深入討論59
3.11 使用Decimal類型處理貨幣金額59
3.12 break和continue語句63
3.13 布爾運算符and、or和not63
3.14 數據科學入門:集中趨勢度量—均值、中值和眾數66
3.15 小結67
第4章 函式69
4.1 簡介69
4.2 函式定義70
4.3 多參數函式72
4.4 隨機數生成74
4.5 案例研究:一個運氣遊戲76
4.6 Python標準庫79
4.7 math模組中的函式80
4.8 在IPython中使用制表符自動補全81
4.9 默認參數值82
4.10 關鍵字參數83
4.11 不定長參數列表83
4.12 方法:屬於對象的函式84
4.13 作用域規則85
4.14 import:深入討論87
4.15 向函式傳遞參數:深入討論88
4.16 遞歸91
4.17 函式式編程93
4.18 數據科學入門:離中趨勢度量95
4.19 小結96
第5章 序列:列表和元組97
5.1 簡介97
5.2 列表98
5.3 元組102
5.4 序列解包104
5.5 序列切片106
5.6 使用del聲明108
5.7 將列表傳遞給函式109
5.8 列表排序110
5.9 序列搜尋111
5.10 列表的其他方法113
5.11 使用列表模擬堆疊115
5.12 列表推導式116
5.13 生成器表達式118
5.14 過濾、映射和歸約118
5.15 其他的序列處理函式120
5.16 二維列表122
5.17 數據科學入門:模擬和靜態可視化124
5.17.1 擲600、60,000、6,000,000次骰子的圖例124
5.17.2 實現擲骰子中不同點數出現次數和百分比的可視化126
5.18 小結132
第二部分 Python數據結構、字元串和檔案
第6章 字典和集合136
6.1 簡介136
6.2 字典137
6.2.1 創建字典137
6.2.2 遍歷字典138
6.2.3 基本的字典操作138
6.2.4 字典的keys和values方法140
6.2.5 字典的比較141
6.2.6 示例:學生成績字典142
6.2.7 示例:單詞計數143
6.2.8 字典的update方法144
6.2.9 字典推導式145
6.3 集合146
6.3.1 集合的比較147
6.3.2 集合的數學運算148
6.3.3 集合的可變運算符和方法150
6.3.4 集合推導式151
6.4 數據科學入門:動態可視化151
6.4.1 動態可視化的工作原理152
6.4.2 實現動態可視化154
6.5 小結156
第7章 使用NumPy進行面向數組的編程158
7.1 簡介158
7.2 從現有數據創建數組159
7.3 數組屬性160
7.4 用特定值填充數組162
7.5 從範圍創建數組162
7.6 列表與數組的性能比較:引入%timeit164
7.7 數組運算符165
7.8 NumPy計算方法167
7.9 通用函式168
7.10 索引和切片170
7.11 視圖:淺拷貝171
7.12 視圖:深拷貝173
7.13 重塑和轉置174
7.14 數據科學入門:pandas Series和DataFrame176
7.14.1 Series177
7.14.2 DataFrame181
7.15 小結188
第8章 字元串:深入討論190
8.1 簡介190
8.2 格式化字元串191
8.2.1 表示類型191
8.2.2 欄位寬度和對齊方式193
8.2.3 數字格式化193
8.2.4 字元串的format方法194
8.3 拼接和重複字元串195
8.4 去除字元串中的空白字元196
8.5 字元大小寫轉換196
8.6 字元串的比較運算符197
8.7 查找子字元串197
8.8 替換子字元串199
8.9 字元串拆分和連線199
8.10 字元串測試方法201
8.11 原始字元串202
8.12 正則表達式介紹202
8.12.1 re模組與fullmatch函式203
8.12.2 替換子字元串和拆分字元串207
8.12.3 其他搜尋功能、訪問匹配207
8.13 數據科學入門:pandas、正則表達式和數據治理210
8.14 小結214
第9章 檔案和異常215
9.1 簡介215
9.2 檔案216
9.3 文本檔案處理217
9.3.1 向文本檔案中寫入數據:with語句的介紹217
9.3.2 從文本檔案中讀取數據218
9.4 更新文本檔案220
9.5 使用JSON進行序列化221
9.6 關注安全:pickle序列化和反序列化224
9.7 關於檔案的附加說明224
9.8 處理異常225
9.8.1 被零除和無效輸入226
9.8.2 try語句226
9.8.3 在一條except子句中捕獲多個異常229
9.8.4 一個函式或方法引發了什麼異常229
9.8.5 try子句的語句序列中應該書寫什麼代碼229
9.9 finally子句229
9.10 顯式地引發一個異常231
9.11 (選學)堆疊展開和回溯232
9.12 數據科學入門:使用CSV檔案234
9.12.1 Python標準庫模組csv234
9.12.2 將CSV檔案數據讀入pandas DataFrame中236
9.12.3 讀取鐵達尼號災難數據集237
9.12.4 用鐵達尼號災難數據集做簡單的數據分析238
9.12.5 乘客年齡直方圖239
9.13 小結240
第三部分 Python高級主題
第10章 面向對象編程242
10.1 簡介242
10.2 自定義Account類244
10.2.1 試用Account類245
10.2.2 Account類的定義246
10.2.3 組合:對象引用作為類的成員248
10.3 屬性訪問控制248
10.4 用於數據訪問的property249
10.4.1 試用Time類249
10.4.2 Time類的定義251
10.4.3 Time類定義的設計說明254
10.5 模擬“私有”屬性255
10.6 案例研究:洗牌和分牌模擬257
10.6.1 試用Card類和DeckOfCards類257
10.6.2 Card類:引入類屬性258
10.6.3 DeckOfCards類260
10.6.4 利用Matplotlib顯示撲克牌圖像262
10.7 繼承:基類和子類265
10.8 構建繼承層次結構:引入多態性267
10.8.1 基類CommissionEmployee267
10.8.2 子類SalariedCommission-Employee270
10.8.3 以多態方式處理Commission-Employee和SalariedComm-issionEmployee273
10.8.4 關於基於對象和面向對象編程的說明274
10.9 鴨子類型和多態性274
10.10 運算符重載276
10.10.1 試用Complex類277
10.10.2 Complex類的定義278
10.11 異常類層次結構和自定義異常279
10.12 具名元組280
10.13 Python 3.7的新數據類簡介281
10.13.1 創建Card數據類282
10.13.2 使用Card數據類284
10.13.3 數據類相對於具名元組的優勢286
10.13.4 數據類相對於傳統類的優勢286
10.14 使用文檔字元串和doctest進行單元測試286
10.15 命名空間和作用域290
10.16 數據科學入門:時間序列和簡單線性回歸293
10.17 小結300
第四部分 人工智慧、雲和大數據案例研究
第11章 自然語言處理304
11.1 簡介304
11.2 TextBlob305
11.2.1 創建一個TextBlob對象307
11.2.2 將文本標記為句子和單詞307
11.2.3 詞性標註308
11.2.4 提取名詞短語309
11.2.5 使用TextBlob的默認情感分析器進行情感分析309
11.2.6 使用NaiveBayesAnalyzer進行情感分析310
11.2.7 語言檢測與翻譯311
11.2.8 變形:複數化和單數化312
11.2.9 拼寫檢查和拼寫校正313
11.2.10 規範化:詞幹提取和詞形還原314
11.2.11 詞頻314
11.2.12 從WordNet中獲取單詞定義、同義詞和反義詞315
11.2.13 刪除停用詞317
11.2.14 n元318
11.3 使用柱狀圖和詞雲可視化詞頻319
11.3.1 使用pandas可視化詞頻319
11.3.2 使用詞雲可視化詞頻321
11.4 使用Textatistic庫進行可讀性評估324
11.5 使用spaCy命名實體識別326
11.6 使用spaCy進行相似性檢測327
11.7 其他NLP庫和工具328
11.8 機器學習和深度學習自然語言套用328
11.9 自然語言數據集329
11.10 小結329
第12章 Twitter數據挖掘331
12.1 簡介331
12.2 Twitter API概況333
12.3 創建一個Twitter賬戶334
12.4 獲取Twitter憑據,創建應用程式334
12.5 什麼是推文336
12.6 Tweepy339
12.7 通過Tweepy進行Twitter身份驗證340
12.8 獲取一個Twitter賬戶的相關信息341
12.9 Tweepy Cursor簡介:獲得一個賬戶的關注者和朋友343
12.9.1 確定一個賬戶的關注者343
12.9.2 確定一個賬戶的關注對象345
12.9.3 獲取一個用戶的最新推文345
12.10 搜尋最新的推文346
12.11 熱門話題發現:Twitter熱門話題API348
12.11.1 有熱門話題的地點348
12.11.2 獲取熱門話題列表349
12.11.3 根據熱門話題創建詞雲351
12.12 推文分析前的清理或預處理352
12.13 Twitter流API353
12.13.1 創建StreamListener的子類353
12.13.2 啟動流處理356
12.14 推文情感分析357
12.15 地理編碼和映射361
12.15.1 獲取和映射推文362
12.15.2 tweetutilities.py中的實用函式366
12.15.3 LocationListener類367
12.16 存儲推文的方法368
12.17 Twitter和時間序列369
12.18 小結369
第13章 IBM Watson和認知計算370
13.1 簡介370
13.2 IBM雲賬戶和雲控制台372
13.3 Watson服務372
13.4 額外的服務和工具375
13.5 Watson開發者雲Python SDK377
13.6 案例研究:旅行者翻譯伴侶APP377
13.6.1 準備工作378
13.6.2 運行APP379
13.6.3 SimpleLanguageTranslator.py腳本代碼分析380
13.7 Watson資源390
13.8 小結391
第14章 機器學習:分類、回歸和聚類392
14.1 簡介392
14.1.1 scikit-learn393
14.1.2 機器學習的類別394
14.1.3 scikit-learn中內置的數據集396
14.1.4 典型的數據科學研究的步驟396
14.2 案例研究:用k近鄰算法和Digits數據集進行分類(第1部分)397
14.2.1 k近鄰算法398
14.2.2 載入數據集399
14.2.3 可視化數據402
14.2.4 拆分數據以進行訓練和測試404
14.2.5 創建模型405
14.2.6 訓練模型405
14.2.7 預測數字類別406
14.3 案例研究:利用k近鄰算法和Digits數據集進行分類(第2部分)407
14.3.1 模型準確性指標407
14.3.2 k折交叉驗證410
14.3.3 運行多個模型以找到最佳模型411
14.3.4 超參數調整413
14.4 案例研究:時間序列和簡單線性回歸413
14.5 案例研究:基於加利福尼亞房價數據集的多元線性回歸418
14.5.1 載入數據集418
14.5.2 使用pandas探索數據420
14.5.3 可視化特徵422
14.5.4 拆分數據以進行訓練和測試426
14.5.5 訓練模型426
14.5.6 測試模型427
14.5.7 可視化預測房價和期望房價427
14.5.8 回歸模型指標428
14.5.9 選擇最佳模型429
14.6 案例研究:無監督學習(第1部分)—降維430
14.7 案例研究:無監督學習(第2部分)—k均值聚類433
14.7.1 載入Iris數據集435
14.7.2 探索Iris數據集:使用pandas進行描述性統計436
14.7.3 使用Seaborn的pairplot可視化數據集438
14.7.4 使用KMeans估計器440
14.7.5 主成分分析降維442
14.7.6 選擇最佳聚類估計器444
14.8 小結445
第15章 深度學習447
15.1 簡介447
15.1.1 深度學習套用449
15.1.2 深度學習演示450
15.1.3 Keras資源450
15.2 Keras內置數據集450
15.3 自定義Anaconda環境451
15.4 神經網路452
15.5 張量454
15.6 用於視覺的卷積神經網路:使用MNIST數據集進行多分類455
15.6.1 載入MNIST數據集457
15.6.2 數據探索457
15.6.3 數據準備459
15.6.4 創建神經網路模型461
15.6.5 訓練和評價模型468
15.6.6 保存和載入模型472
15.7 用TensorBoard可視化神經網路的訓練過程473
15.8 ConvnetJS:基於瀏覽器的深度學習訓練和可視化476
15.9 針對序列的遞歸神經網路:使用IMDb數據集進行情感分析477
15.9.1 載入IMDb影評數據集478
15.9.2 數據探索478
15.9.3 數據準備480
15.9.4 創建神經網路481
15.9.5 訓練和評價模型483
15.10 調整深度學習模型484
15.11 在ImageNet上預訓練的CNN模型485
15.12 小結486
第16章 大數據:Hadoop、Spark、NoSQL和IoT488
16.1 簡介488
16.2 關係資料庫和結構化查詢語言492
16.2.1 books資料庫493
16.2.2 SELECT查詢497
16.2.3 WHERE子句497
16.2.4 ORDER BY子句498
16.2.5 從多個表中合併數據:INNER JOIN499
16.2.6 INSERT INTO語句500
16.2.7 UPDATE語句501
16.2.8 DELETE FROM語句502
16.3 NoSQL和NewSQL大數據資料庫簡述502
16.3.1 NoSQL鍵-值資料庫503
16.3.2 NoSQL文檔資料庫503
16.3.3 NoSQL列式資料庫504
16.3.4 NoSQL圖資料庫504
16.3.5 NewSQL資料庫505
16.4 案例研究:MongoDB JSON文檔資料庫506
16.4.1 創建MongoDB Atlas集群506
16.4.2 將推文存入MongoDB中507
16.5 Hadoop515
16.5.1 概述516
16.5.2 通過MapReduce匯總Romeo-AndJuliet.txt中的單詞長度518
16.5.3 在Microsoft Azure HDInsight中創建Apache Hadoop集群518
16.5.4 Hadoop流520
16.5.5 實現映射器520
16.5.6 實現歸約器521
16.5.7 準備運行MapReduce示例522
16.5.8 運行MapReduce作業523
16.6 Spark525
16.6.1 概述525
16.6.2 Docker和Jupyter Docker堆疊526
16.6.3 使用Spark的單詞計數529
16.6.4 Microsoft Azure上的Spark單詞計數532
16.7 Spark流:使用pyspark-notebookDocker堆疊計算Twitter主題標籤535
16.7.1 將推文流式傳輸到套接字535
16.7.2 總結推文主題標籤,介紹Spark SQL538
16.8 物聯網和儀錶板543
16.8.1 發布和訂閱545
16.8.2 使用Freeboard儀錶板可視化PubNub示例實時流545
16.8.3 用Python模擬一個連線網際網路的恆溫器547
16.8.4 使用freeboard.io創建儀錶板549
16.8.5 創建一個Python PubNub訂閱伺服器550
16.9 小結554
索引556