Python編程:從數據分析到數據科學( 簡體 字) | |
作者:朝樂門 | 類別:1. -> 程式設計 -> Python |
出版社:電子工業出版社 | 3dWoo書號: 50603 詢問書籍請說出此書號! 有庫存 NT售價: 340 元 |
出版日:1/1/2019 | |
頁數:520 | |
光碟數:0 | |
站長推薦: | |
印刷:全彩印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121344404 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第一篇 準備工作
1 為什么要學習Python?學習Python 的什么.... 3 2 學習Python 之前需要準備的工作有哪些.... 6 3 如何看懂和運行本書代碼.... 8 3.1 輸入部分......8 3.2 輸出部分..... 10 3.3 錯誤與異常信息...... 11 3.4 外部數據文件.....12 3.5 注意事項..... 14 第二篇 Python基礎 4 數據類型......19 4.1 查看數據類型的方法.... 20 4.2 判斷數據類型的方法.....21 4.3 數據類型的轉換方法.....22 4.4 特殊數據類型.....23 4.5 序列類型.....26 5 變量......28 5.1 變量的定義方法.....29 5.2 Python 是動態類型語言.....29 5.3 Python 是強類型語言.... 30 5.4 Python 中的變量名是引用.....31 5.5 Python 中區分大小寫.....32 5.6 變量命名規范.....32 5.7 iPython 的特殊變量....33 5.8 查看Python 關鍵字的方法..... 34 5.9 查看已定義的所有變量.....35 5.10 刪除變量.....37 6 語句書寫規范......39 6.1 一行一句..... 40 6.2 一行多句..... 40 6.3 一句多行..... 41 6.4 復合語句...... 42 6.5 空語句..... 43 7 賦值語句.....44 7.1 賦值語句在Python 中的重要地位..... 45 7.2 鏈式賦值語句...... 45 7.3 復合賦值語句...... 46 7.4 序列的拆包式賦值...... 46 7.5 兩個變量值的調換...... 47 8 注釋語句......48 8.1 注釋方法..... 48 8.2 注意事項..... 49 9 運算符......50 9.1 特殊運算符.....53 9.2 內置函數......57 9.3 math 模塊.....58 9.4 優先級與結合方向.....59 10 if語句.......61 10.1 基本語法.....61 10.2 elif 語句......62 10.3 if 與三元運算......63 10.4 注意事項...... 64 11 for語句.......67 11.1 基本語法.....67 11.2 range()函數......67 11.3 注意事項.....68 12 while語句......71 12.1 基本語法.....71 12.2 注意事項.....72 13 pass語句.....74 13.1 含義...... 74 13.2 作用.....75 14 列表.......76 14.1 定義方法.....78 14.2 切片操作.....79 14.3 反向遍歷.....81 14.4 類型轉換.....83 14.5 extend 與append 的區別.....83 14.6 列表推導式...... 84 14.7 插入與刪除.....87 14.8 常用操作函數.....89 15 元組.......94 15.1 定義方法.....95 15.2 主要特征.....97 15.3 基本用法.....99 15.4 應用場景...... 100 16 字符串...... 103 16.1 定義方法...... 104 16.2 主要特征...... 105 16.3 字符串的操作...... 106 17 序列.......111 17.1 支持索引...... 112 17.2 支持切片...... 113 17.3 支持迭代...... 114 17.4 支持拆包...... 114 17.5 支持*運算...... 115 17.6 通用函數...... 117 18 集合...... 120 18.1 定義方法...... 121 18.2 主要特征...... 122 18.3 基本運算...... 123 18.4 應用場景...... 125 19 字典.......126 19.1 定義方法...... 127 19.2 字典的主要特征...... 128 19.3 字典的應用場景...... 129 20 迭代器與生成器..... 130 20.1 可迭代對象與迭代器.... 131 20.2 生成器與迭代器...... 132 21 函數...... 134 21.1 內置函數.....135 21.2 模塊函數.....135 21.3 用戶自定義函數.....136 22 內置函數......137 22.1 內置函數的主要特點.... 138 22.2 數學函數...... 138 22.3 類型函數...... 139 22.4 其他功能函數...... 140 23 模塊函數..... 145 23.1 import 模塊名..... 146 23.2 import 模塊名as 別名..... 147 23.3 from 模塊名import 函數名.... 147 24 自定義函數..... 149 24.1 定義方法...... 151 24.2 函數中的docString..... 152 24.3 自定義函數的調用方法.... 152 24.4 返回值...... 153 24.5 自定義函數的形參與實參.... 154 24.6 變量的可見性...... 156 24.7 值傳遞與地址傳遞.... 158 24.8 自定義函數時的注意事項.... 160 25 lambda 函數......162 25.1 lambda 函數的定義方法..... 163 25.2 lambda 函數的調用方法.... 164 26 模塊......166 26.1 導入與用法...... 167 26.2 查看內置模塊清單的方法.... 168 27 包......171 27.1 包的基本術語...... 172 27.2 安裝包...... 172 27.3 查看已安裝包...... 173 27.4 更新(或刪除)已安裝包.... 173 27.5 導入包...... 174 27.6 查看包的幫助...... 175 27.7 常用包...... 176 28 幫助文檔......177 28.1 help 函數..... 178 28.2 DocString ..... 178 28.3 查看源代碼...... 179 28.4 doc 屬性..... 180 28.5 dir()函數..... 181 28.6 其他方法...... 183 第三篇 Python進階 29 異常與錯誤......187 29.1 try/except/finally..... 188 29.2 異常信息的顯示模式.... 189 29.3 斷言...... 190 30 程序調試方法......192 30.1 調試程序的基本方法 .... 193 30.2 設置錯誤信息的顯示方式.... 194 30.3 設置斷言的方法...... 195 31 面向對象編程.....197 31.1 類的定義方法...... 198 31.2 類中的特殊方法...... 199 31.3 類之間的繼承關系.... 201 31.4 私有屬性及@property 裝飾器..... 203 31.5 self 和cls ...... 204 31.6 new 與init 的區別和聯系..... 205 32 魔術命令..... 208 32.1 運行.py 文件:%run.... 209 32.2 統計運行時間:%timeit 與%%timeit... 210 32.3 查看歷史In 和Out 變量:%history .... 211 32.4 更改異常信息的顯示模式:%xmode.... 212 32.5 調試程序:%debug..... 214 32.6 程序運行的逐行統計:%prun 與%lprun .... 215 32.7 內存使用情況的統計:%memit .... 216 33 搜索路徑......218 33.1 變量搜索路徑...... 219 33.2 模塊搜索路徑...... 221 34 當前工作目錄......224 34.1 顯示當前工作目錄的方法.... 225 34.2 更改當前工作目錄的方法.... 225 34.3 讀、寫當前工作目錄的方法.... 226 第四篇 數據加工 35 隨機數......229 35.1 一次生成一個數...... 230 35.2 一次生成一個隨機數組.... 231 36 數組......234 36.1 創建方法...... 238 36.2 主要特征...... 241 36.3 切片/讀取..... 243 36.4 淺拷貝和深拷貝...... 249 36.5 形狀和重構...... 250 36.6 屬性計算...... 254 36.7 ndarray 的計算..... 256 36.8 ndarray 的元素類型..... 258 36.9 插入與刪除...... 259 36.10 缺失值處理...... 260 36.11 ndarray 的廣播規則..... 261 36.12 ndarray 的排序..... 262 37 Series ......265 37.1 Series 的主要特點.... 266 37.2 Series 的定義方法.... 266 37.3 Series 的操作方法.... 269 38 DataFrame.....274 38.1 DataFrame 的創建方法..... 277 38.2 查看行或列...... 278 38.3 引用行或列...... 279 38.4 index 操作...... 283 38.5 刪除或過濾行/列.... 285 38.6 算術運算...... 290 38.7 大小比較運算...... 296 38.8 統計信息...... 297 38.9 排序...... 299 38.10 導入/導出...... 301 38.11 缺失數據處理...... 302 38.12 分組統計...... 308 39 日期與時間......311 39.1 常用包與模塊...... 312 39.2 時間和日期類型的定義.... 312 39.3 轉換方法...... 314 39.4 顯示系統當前時間.... 316 39.5 計算時差...... 317 39.6 時間索引...... 317 39.7 period_range()函數..... 320 40 可視化......321 40.1 Matplotlib 可視化..... 323 40.2 改變圖的屬性...... 326 40.3 改變圖的類型...... 329 40.4 改變圖的坐標軸的取值范圍.... 330 40.5 去掉邊界的空白...... 332 40.6 在同一個坐標上畫兩個圖.... 333 40.7 多圖顯示...... 334 40.8 圖的保存...... 335 40.9 散點圖的畫法...... 335 40.10 Pandas 可視化...... 336 40.11 Seaborn 可視化.... 339 40.12 數據可視化實戰.... 343 41 自然語言處理.....346 41.1 自然語言處理的常用包 .... 347 41.2 自然語言處理的包導入及設置.... 347 41.3 數據讀入...... 348 41.4 分詞處理...... 349 41.5 自定義詞匯...... 350 41.6 停用詞處理...... 354 41.7 詞性分布分析...... 356 41.8 高頻詞分析...... 358 41.9 詞頻統計...... 360 41.10 關鍵詞分析...... 362 41.11 生成詞云...... 363 42 Web爬取.....365 42.1 Scrapy 的下載與安裝.... 367 42.2 Scrapy Shell 的基本原理.... 368 42.3 Scrapy Shell 的應用.... 370 42.4 自定義Spider 類..... 374 42.5 綜合應用...... 379 第五篇 數據分析 43 統計分析......389 43.1 業務理解...... 390 43.2 數據讀入...... 391 43.3 數據理解...... 392 43.4 數據準備...... 393 43.5 模型類型的選擇與超級參數的設置.... 394 43.6 訓練具體模型及查看其統計量.... 396 43.7 擬合優度評價...... 397 43.8 建模前提假定的討論.... 398 43.9 模型的優化與重新選擇.... 400 43.10 模型的應用...... 404 44 機器學習..... 405 44.1 機器學習的業務理解.... 406 44.2 數據讀入...... 407 44.3 數據理解...... 408 44.4 數據準備...... 411 44.5 算法選擇及其超級參數的設置.... 414 44.6 具體模型的訓練...... 415 44.7 用模型進行預測...... 415 44.8 模型評價...... 416 44.9 模型的應用與優化.... 417 第六篇 大數據處理 45 Spark 編程...... 421 45.1 導入pyspark 包..... 423 45.2 SparkSession 及其創建.... 423 45.3 Spark 數據抽象類型.... 426 45.4 Spark DataFrame 操作..... 429 45.5 SQL 編程...... 433 45.6 DataFrame 的可視化..... 436 45.7 Spark 機器學習...... 438 46 Spark Python 開發環境的搭建過程.... 445 46.1 安裝Anaconda ...... 446 46.2 安裝和配置Java..... 449 46.3 安裝和配置Spark .... 451 46.4 安裝和配置Hadoop .... 454 46.5 測試Spark ...... 455 47 NoSQL數據庫.....456 47.1 下載Memcached....457 47.2 安裝Memcached....457 47.3 安裝和導入包pymemcache .....459 47.4 準備試驗數據...... 460 47.5 定義Client 并進行數據讀寫..... 460 47.6 Memcached 的更多操作.....462 第七篇 繼續學習 48 Python 初學者常見錯誤及糾正方法.....467 48.1 NameError: name ‘xxxx‘ is not defined ... 467 48.2 IndentationError: unexpected indent ... 468 48.3 SyntaxError: invalid character in identifier .... 469 48.4 TypeError: ‘XXXX‘ object does not support item assignment .. 470 48.5 TypeError: unsupported operand type(s) for XXXX ... 470 48.6 IndexError: list index out of range ... 471 48.7 TypeError: type() takes XXXX arguments ... 472 48.8 SyntaxError: unexpected EOF while parsing .. 472 48.9 ModuleNotFoundError: No module named XXXX .. 473 48.10 TypeError: ‘ list‘ object is not callable .... 474 48.11 SyntaxError: invalid syntax .... 475 48.12 AttributeError:XXXX object has no attribute XXXX ... 476 48.13 TypeError: XXXX object is not an iterator... 477 48.14 FileNotFoundError: File XXXX does not exist... 478 48.15 IndexError: too many indices for array .... 480 48.16 TypeError: Required argument XXXX not found .. 481 48.17 TypeError: an XXXX is required (got type YYYY) .. 482 48.18 ValueError: Wrong number of items passed XXXX, placement implies YYYY . 483 49 Python 數據分析和數據科學面試題.....485 50 繼續學習本書內容的推薦資源....496 50.1 重要網站...... 496 50.2 重要圖書...... 476 50.3 常用模塊與工具包.... 497 50.4 常用統計模型...... 497 50.5 核心機器學習算法.... 498 50.6 繼續學習數據科學的建議路線圖.....499 參考文獻...... 503 朝樂門老師的《Python編程:從數據分析到數據科學(原稿)》作為全國高校大數據教育聯盟主辦的“Python編程及數據分析骨干教師高級研修班”的指定教材,得到與會代表的一致好評。該教材較好地反映了本學科的基本理論、基本知識、基本技能,并注重知識體系的系統性、科學性和先進性,對于大數據類專業中開設Python編程課程具有重要的示范意義和指導作用。—— 全國高校大數據教育聯盟
“寫好一本書”是一件功德無量的事情。因為,寫書可以用自己的時間來節約他人的時間。在這浮躁而現實的時代,不去寫論文或爭課題,而是低頭寫教材,明知不會計入工作量或業績,但我還是樂此不疲。按自己的常規速度計算,寫本教材大概也就3 個月的時間,但這次實際投入了整整18個月的精力,目的只有一個——用自己的18個月,為他人節約15個月的時間。
“寫好一本書”需要有好的頂層設計。我在近幾年的教學一線中意識到,國內亟需一本面向數據科學和大數據技術專業人才培養的Python 好教材。目前,相關圖書中存在的問題有:第一、“將Python 當作Java/C 來教(或學)”,換一個“新語言”來討論“老問題”,根本品不出Python 特有的味道;第二、“先講知識點,后擺代碼”式教材編寫風格,以“文字”為主,“代碼”為輔,導致主次顛倒;第三、“數據科學類專業與計算機科學類專業中選用的Python 教材沒什么區別”,不知道誰是誰;第四、“把讀者(或自己)當作編程白癡來寫(或讀)”。目前,多數讀者已有C/Java 等語言的基礎,Python 屬于“第二外語”,不需要低級重復,更不應該用不同語言反復學習同一個知識點,始終徘徊在知識殿堂的門口。突破上述局限并且探索出新的教學模式和教材編寫方式是我編寫這本書的初心。是否達到了預期目標,需要各位仔細閱讀全書之后明鑒。 “寫好一本書”需要有十本書的真材實料。在本書撰寫過程中,我參閱了大量國內外專著、教材、論文、開源項目和原始數據,雖然書中對參考文獻多有標注,但難免掛一漏萬,敬希相關作者鑒諒。書中還吸收了自2015 年以來我和我的團隊撰寫或翻譯的部分短文,同時借鑒了我的課堂上學生曾提問或關注的問題。 “寫好一本書”離不開他人的鼎力相助。電子工業出版社領導及編輯,尤其是章海濤編輯為本書的出版做出了大量工作;感謝教育部—IBM產學合作協同育人項目的資助和支持;感謝中國人民大學劉巖、楊燦軍、李昊璟、王雨晴、曲涵晴、趙群等學生參與了本書的校對工作;家人給予了長期的理解與支持,本人從事基礎研究,淡泊名利,她們卻從不抱怨。 “寫好一本書”是一個長期反復打磨的過程。本書第一版中必有不足之處,望各位讀者不吝賜教。我們將通過華信教育資源網(http://www.hxedu.com.cn)和微信公眾號“數據科學DataScience”實時發布勘誤或更新內容。這是繼《數據科學》《數據科學理論與實踐》之后,我的第三本書。曾有人跟我說,“朝老師,您碩果累累,還那么拼命,未來一定是數據科學領域最大的牛”。我回答,“No,那不是我的目的。我的奮斗目的只有一個:爭取做到數據科學領域最努力的人,也就是最舍得投入時間和精力的人。其他的都無所謂。”希望“我的努力”成為“您的努力”! 朝樂門 于中國人民大學 2018 年12 月 |