自學Python 編程基礎、科學計算及數據分析 第2版
定 價:¥89.9
中 教 價:¥53.04 (5.90折)促銷
庫 存 數: 1
本書是面向Python學習者和使用者的一本實用學習筆記,在前一版的基礎之上進行了全面修訂。全書共11章。第1章介紹Python的基礎知識,包括Anaconda、IPython解釋器、Jupyter Notebook等Python基本工具的使用;第2章介紹Python的基本用法,包括基礎語法、數據類型、判斷與循環、函數與模塊、異常與警告、文件讀寫、內置函數;第3章介紹Python的進階用法,包括函數進階、迭代器與生成器、裝飾器、上下文管理器與with語句、變量作用域;第4章介紹Python面向對象編程,包括對象的方法與屬性、繼承與復用;第5章介紹常見的Python標準庫;第6章介紹Python科學計算基礎模塊NumPy,包括NumPy數組的操作、廣播機制、索引和讀寫;第7章介紹Python數據可視化模塊Matplotlib,包括基于函數和對象的可視化操作;第8章介紹Python科學計算進階模塊SciPy,包括概率、線性代數等模塊;第9章介紹Python數據分析基礎模塊Pandas,包括Series和DataFrame的使用;第10章介紹一個用Python分析中文小說文本的案例;第11章介紹一個用Python對手寫數字進行機器學習處理的案例。本書適合剛接觸Python的初學者以及希望使用Python處理和分析數據的讀者閱讀,也可作為學習和使用Python的工具書或參考資料使用。
一本言簡意賅、系統講解Python編程基礎、科學計算、數據分析的自學教程。源自網上廣受好評的中文python筆記,知乎 如何系統地自學 Python?千萬訪問量答主自學Python的經驗總結。特別總結了Python多版本代碼差異對比,配備全套數據集、源代碼,方便使用者參考。
人生苦短,我用Python。Python是一門越來越流行的編程語言,它免費、易學,而且功能強大,在網絡編程、圖像用戶界面編程、科學計算、數據挖掘、機器學習、人工智能等方面都有著廣泛的應用。我在一年多的時間里,通過自學,從一個Python小白成長為一個Python老手,在這個過程中,用筆記的形式記錄了自己學習和使用Python的經驗。根據這段經歷,于2019年出版了本書的第1版(基于Python 2.7版本)。經過數年的時間,這個學習筆記依然有著不小的閱讀量:在知乎的高分問答如何系統地自學 Python?閱讀量達到千萬量級(https://www.zhihu.com/question/29138020/answer/81972368),GitHub上的學習筆記的Star達6300以上,Fork達2900以上(https://github.com/lijin-THU/notes-python)。由于對Python的學習、應用需求與日俱增,并且Python 3已成為主流,所以我對第1版的內容進行了大量的修改,升級改版為基于Python 3的自學筆記,相信會對開始學習并使用Python的朋友有所幫助。本書的集成開發環境是Anaconda,它是一個功能強大的Python計算環境。本書利用IPython解釋器、Jupyter Notebook等工具開展Python編程的實踐。本書首先介紹了Python工具的使用、Python基礎和進階用法、面向對象編程,為讀者打下良好的基礎:優秀的工具能幫助讀者更有效地學習和使用Python;基礎和進階用法能讓讀者對Python的用法有一些基本的認知;面向對象編程可以讓讀者了解一些基礎的設計模式。接下來,本書介紹了一些關鍵的Python模塊,這些模塊包括Python標準庫中的自帶模塊,以及NumPy、Matplotlib、SciPy、Pandas等最常用的模塊。這些模塊提供了強大的功能:標準庫模塊提供了處理編程常見問題的工具,NumPy模塊提供了科學計算的基礎類型數組,Matplotlib模塊可以對數據進行可視化,SciPy模塊可以進行概率、線性代數等的操作,而Pandas模塊則提供了數據分析的基本功能。最后,本書詳細講解了兩個用Python進行數據分析與機器學習編程的實例,通過這兩個例子,讀者可以了解數據分析和機器學習的一些基本流程。本書基于學習筆記而來,內容更貼近實際,例子也簡單易懂。除了介紹Python的用法,本書還加入了很多原理上的解釋,并輔以實例進行說明。因此,與其他Python書籍相比,本書不僅具有知其然的功能,還具有知其所以然的特點,從而能更好地幫助Python初學者進行自學。本書使用Python 3版本。考慮到書中涉及模塊的功能可能會隨版本更新而改變,因此,本書主要介紹各個模塊的核心功能,對于一些細節用法不做過多介紹。特別地,結合我學習工作以來遇到的實際情況,雖然Python 2已經不再被維護,但一些企業和項目由于歷史原因仍然保留了許多用Python 2編寫的代碼。為了方便廣大讀者在實際工作學習中閱讀和運維基于Python 2的代碼,本書將Python 2與Python 3的一些核心區別標注出來,以便讀者掌握。本書配備有全套案例數據集、源代碼,可通過掃描關注機械工業出版社計算機分社官方微信公眾號IT有得聊,回復XXXXX即可獲取。致謝本書基于很多資料和知識整理匯集而成,因此,我不可能完全統計出所有對本書的內容做出貢獻的人士。在這里,我向所有貢獻者們致以最誠摯的謝意。我要感謝我的家人,他們默默的支持,是我最堅實的后盾。我要感謝我的導師張長水教授,他嚴謹的教導,是我終生受益的財富。我要感謝我的朋友蔣楠、胡捷、王磊和潘偉燊,沒有他們的真誠鼓勵,我也不會堅持記完我的筆記。我還要感謝機工社的編輯王斌(IT大公雞),有了他的鼎力相助,才有了這本書的成型與出版。機緣巧合促成了這本書的誕生,這也必將成為我一生中最寶貴的經歷。非常希望本書能夠對正踏上Python學習之路的朋友有所幫助!李金 2022.3.27
李金,清華自動化系碩士,阿里巴巴負責廣告推薦的算法專家,知乎達人,其在知乎上的高分問答如何系統地自學 Python?閱讀量達4000萬,在Github上的中文python筆記也廣受國內外讀者好評。
第1章 初識Python11.1 人生苦短,我用Python11.1.1 Python簡介11.1.2 版本的選擇21.2 安裝Python環境21.2.1 集成開發環境:Anaconda21.2.2 第一行Python代碼31.3 使用Python工具41.3.1 IPython解釋器41.3.2 代碼的運行模式:解釋器模式與腳本模式61.3.3 學習工具:Jupyter Notebook81.4 本章學習筆記9第2章 Python基礎102.1 基礎語法簡介102.2 數據類型162.2.1 數字162.2.2 字符串202.2.3 索引與分片272.2.4 列表292.2.5 元組342.2.6 可變與不可變類型362.2.7 字典372.2.8 集合與不可變集合412.2.9 賦值機制442.3 判斷與循環492.3.1 判斷492.3.2 循環532.4 函數與模塊582.4.1 函數582.4.2 模塊612.5 異常與警告652.5.1 異常652.5.2 警告702.6 文件讀寫712.6.1 讀文件712.6.2 寫文件722.7 內置函數742.7.1 數字相關的內置函數742.7.2 序列相關的內置函數752.7.3 其他內置函數762.8 本章學習筆記76第3章 Python進階803.1 函數進階803.1.1 函數參數與返回值803.1.2 高階函數823.1.3 map()函數和filter()函數833.1.4 Lambda表達式843.1.5 關鍵字global853.1.6 函數的遞歸863.2 迭代器與生成器873.2.1 迭代器873.2.2 生成器913.3 裝飾器933.3.1 裝飾器的引入933.3.2 裝飾器的用法953.4 上下文管理器與with語句983.4.1 上下文管理器的引入983.4.2 上下文管理器的原理993.5 變量作用域1033.6 本章學習筆記105第4章 Python面向對象編程1074.1 面向對象簡介1074.2 自定義類型1094.3 方法與屬性1114.4 繼承與復用1154.5 公有、私有、特殊以及靜態的方法與屬性1184.6 多重繼承1204.7 本章學習筆記121第5章 Python標準庫1235.1 系統相關:sys模塊1235.2 與操作系統進行交互:os模塊1255.3 正則表達式:re模塊1285.4 日期時間相關:datetime模塊1325.5 讀寫JSON數據:json模塊1345.6 文件模式匹配:glob模塊1375.7 高級文件操作:shutil模塊1385.8 數學:math模塊1395.9 隨機數:random模塊1405.10 路徑操作:pathlib模塊1415.11 網址URL相關:urllib模塊1425.12 實例:使用標準庫實現桌面墻紙下載1435.13 本章學習筆記146第6章 Python科學計算基礎:NumPy模塊1496.1 NumPy模塊簡介1496.2 數組基礎1506.2.1 數組的引入1506.2.2 數組的屬性1516.2.3 數組的類型1526.2.4 數組的生成1556.2.5 數組的索引1576.2.6 數組的迭代1596.3 數組操作1606.3.1 數值相關的數組操作1606.3.2 形狀相關的數組操作1636.3.3 數組的連接操作1686.3.4 數組的四則運算和點乘1716.3.5 數組的數學操作1726.3.6 數組的比較和邏輯操作1736.4 數組廣播機制1746.5 數組索引進階1766.5.1 數組的基礎索引1766.5.2 數組的高級索引1786.6 數組讀寫1806.6.1 數組的讀取1806.6.2 數組的寫入1816.6.3 數組的二進制讀寫1826.7 隨機數組1836.8 實例:使用NumPy實現K近鄰查找1846.9 本章學習筆記185第7章 Python數據可視化:Matplotlib模塊1877.1 Matplotlib模塊簡介1877.2 基于函數的可視化操作1877.2.1 plt.plot()函數的使用1877.2.2 圖與子圖1937.3 基于對象的可視化操作1947.4 圖像中的文本處理1957.5 實例:基于Matplotlib的三角函數可視化1977.6 本章學習筆記200第8章 Python科學計算進階:SciPy模塊2028.1 SciPy模塊簡介2028.2 插值模塊:scipy.interpolate2028.3 概率統計模塊:scipy.stats2068.3.1 基本統計量2068.3.2 概率分布2068.4 優化模塊:scipy.optimize2148.4.1 數據擬合2148.4.2 值優化2188.4.3 方程求根2208.5 線性代數模塊:scipy.linalg2218.6 實例:基于SciPy的主成分分析2278.7 本章學習筆記230第9章 Python數據分析基礎:Pandas模塊2329.1 Pandas模塊簡介2329.2 一維數據結構:Series對象2329.2.1 Series對象的生成2339.2.2 Series對象的使用2359.3 二維數據結構:DataFrame對象2389.3.1 DataFrame對象的生成2389.3.2 DataFrame對象的使用2409.4 Pandas對象的索引2429.4.1 基于中括號的索引和切片2429.4.2 基于位置和標記的高級索引2459.5 缺失值的處理2489.6 數據的讀寫2509.7 實例:基于Pandas的期貨數據分析2519.8 本章學習筆記256第10章 Python案例1:中文小說分析25710.1 數據預處理25710.2 數據統計25910.3 數據建模26310.4 效果分析26510.5 本章學習筆記271第11章 Python案例2:手寫數字分析27311.1 數據的獲取與處理27311.2 數據建模和效果分析27511.3 本章學習筆記277