産品特色
內容簡介
《自學Python——編程基礎、科學計算及數據分析》是麵嚮Python初學者的一本實用學習筆記。全書共10章:第1章介紹Python的基礎知識,包括Anaconda、IPython解釋器、Jupyter Notebook等Python基本工具的使用;第2章介紹Python的基本用法,包括基本語法、數據類型、判斷與循環、函數與模塊、異常與警告以及文件讀寫等;第3章介紹Python的進階用法,包括函數進階、迭代器和生成器、裝飾器、上下文管理器以及變量作用域等;第4章介紹常見的Python標準庫的使用;第5章介紹Python的科學計算基礎模塊NumPy,包括NumPy數組的基本操作、廣播機製、索引和讀寫;第6章介紹Python的可視化模塊Matplotlib,包括基於函數和對象的可視化操作;第7章介紹Python的科學計算進階模塊SciPy,包括一些高等數學的操作;第8章介紹Python的數據分析基礎模塊Pandas,包括Series和DataFrame的使用;第9章介紹Python的麵嚮對象編程,包括對象的屬性和方法、繼承和復用,以及一個使用麵嚮對象編程的實例;第10章介紹瞭一個用Python分析中文小說文本的實例。
《自學Python——編程基礎、科學計算及數據分析》適閤剛接觸Python的初學者以及希望使用Python處理和分析數據的讀者閱讀,也可作為學習和使用Python的工具書或參考資料使用。
目錄
目錄
前言
緻謝
第1章 初識Python1
1.1 Python簡介1
1.2 Python版本的選擇2
1.3 Python集成開發環境的搭建2
1.4 第一行Python代碼4
1.5 IPython解釋器5
1.6 Python代碼的執行模式7
1.6.1 解釋器模式7
1.6.2 腳本模式8
1.6.3 解釋器模式與腳本模式的區彆9
1.7 Jupyter Notebook的使用9
本章學習筆記11
本章新術語11
本章新函數11
第2章 Python基礎12
2.1 基本語法簡介12
2.2 數據類型17
2.2.1 數字18
2.2.2 字符串23
2.2.3 Unicode字符串30
2.2.4 索引與分片32
2.2.5 列錶34
2.2.6 元組40
2.2.7 可變與不可變類型42
2.2.8 字典44
2.2.9 集閤與不可變集閤48
2.2.10 賦值機製53
2.3 判斷與循環58
2.3.1 判斷58
2.3.2 循環62
2.4 函數與模塊69
2.4.1 函數69
2.4.2 模塊73
2.5 異常與警告77
2.5.1 異常77
2.5.2 警告83
2.6 文件讀寫83
2.6.1 讀文件84
2.6.2 寫文件85
2.6.3 中文文件的讀寫87
2.7 內置函數88
2.7.1 數字相關的內置函數88
2.7.2 序列相關的內置函數90
2.7.3 類型相關的內置函數92
本章學習筆記92
本章新術語92
本章新函數94
第3章 Python進階96
3.1 函數進階96
3.1.1 函數參數傳遞96
3.1.2 高階函數98
3.1.3 函數map()、filter()和reduce()101
3.1.4 Lambda錶達式102
3.1.5 關鍵字global103
3.1.6 函數的遞歸104
3.2 迭代器與生成器105
3.2.1 迭代器105
3.2.2 生成器110
3.3 裝飾器112
3.3.1 裝飾器的引入112
3.3.2 裝飾器的用法115
3.4 上下文管理器與with語句118
3.4.1 上下文管理器的原理119
3.4.2 模塊contextlib123
3.5 變量作用域125
本章學習筆記127
本章新術語128
本章新函數128
第4章 Python標準庫129
4.1 係統相關:sys模塊129
4.2 與操作係統進行交互:os模塊133
4.3 字符串相關:string模塊136
4.4 正則錶達式:re模塊138
4.5 日期時間相關:datetime模塊142
4.6 更好地打印Python對象:pprint模塊145
4.7 序列化Python對象:pickle,cPickle模塊145
4.8 讀寫JSON數據:json模塊147
4.9 文件模式匹配:glob模塊150
4.10 高級文件操作:shutil模塊151
4.11 更多的容器類型:collections模塊153
4.12 數學:math模塊157
4.13 隨機數:random模塊158
本章學習筆記159
本章新術語160
本章新函數160
第5章 Python科學計算基礎:NumPy模塊162
5.1 NumPy模塊簡介162
5.2 數組基礎163
5.2.1 數組的引入163
5.2.2 數組的屬性164
5.2.3 數組的類型166
5.2.4 數組的生成169
5.2.5 數組的索引172
5.2.6 數組的迭代174
5.3 數組操作175
5.3.1 數值相關的數組操作175
5.3.2 形狀相關的數組操作179
5.3.3 數組的拼接操作184
5.3.4 數組的四則運算、點乘和矩陣類型187
5.3.5 數組的數學操作190
5.3.6 數組的比較和邏輯操作190
5.4 數組廣播機製191
5.5 數組索引進階194
5.5.1 數組基礎索引194
5.5.2 數組的高級索引196
5.6 數組讀寫199
5.6.1 數組的讀取199
5.6.2 數組的寫入200
5.6.3 數組的二進製讀寫200
5.7 隨機數組202
5.8 結構數組202
本章學習筆記206
本章新術語207
本章新函數207
第6章 Python可視化:Matplotlib模塊209
6.1 Matplotlib模塊簡介209
6.2 基於函數的可視化操作210
6.2.1 函數plt.plot()的使用210
6.2.2 圖與子圖215
6.2.3 其他可視化函數217
6.3 基於對象的可視化操作217
6.4 圖像中的文本處理219
6.5 實例:基於Matplotlib的三角函數可視化221
本章學習筆記226
本章新術語227
本章新函數227
第7章 Python科學計算進階:SciPy模塊228
7.1 SciPy模塊簡介228
7.2 插值模塊:scipy.interpolate229
7.3 概率統計模塊:scipy.stats233
7.3.1 基本統計量233
7.3.2 概率分布234
7.3.3 假設檢驗243
7.4 優化模塊:scipy.optimize246
7.4.1 數據擬閤247
7.4.2 最值優化251
7.4.3 方程求根254
7.5 積分模塊:scipy.integrate255
7.5.1 符號積分與SymPy模塊255
7.5.2 數值積分257
7.6 稀疏矩陣模塊:scipy.sparse260
7.7 綫性代數模塊:scipy.linalg262
7.8 實例:基於SciPy的主成分分析268
本章學習筆記271
本章新術語272
本章新函數272
第8章 Python數據分析基礎:Pandas模塊274
8.1 Pandas簡介274
8.2 一維數據結構:Series對象275
8.2.1 Series對象的生成275
8.2.2 Series對象的使用277
8.3 二維數據結構:DataFrame對象280
8.3.1 DataFrame對象的生成280
8.3.2 DataFrame對象的使用283
8.4 Pandas對象的索引286
8.4.1 基於中括號的索引和切片286
8.4.2 基於位置和標記的高級索引289
8.5 缺失值的處理293
8.6 數據的讀寫294
8.7 實例:基於Pandas的NBA數據分析295
本章學習筆記299
本章新術語299
本章新函數299
第9章 Python麵嚮對象編程300
9.1 麵嚮對象簡介300
9.2 自定義類型303
9.3 方法和屬性305
9.4 繼承與復用311
9.5 公有、私有、特殊
前言/序言
前言
Python是一門十分流行的編程語言,它免費、易學,而且功能強大,在網絡編程、圖形用戶界麵編程、科學計算、數據挖掘、機器學習、人工智能等方麵都有著廣泛的應用。
我在一年的時間裏,通過自學,從一個Python“小白”成長為瞭一個Python“老手”,並在這個過程中用筆記的形式記錄瞭自己學習和使用Python的經驗。本書就是根據本人的學習筆記整理而來,相信對同樣開始學習並使用Python的朋友會有幫助。
《自學Python——編程基礎、科學計算及數據分析》使用的集成開發環境是Anaconda,一個強大的Python計算環境。本書從初學者的角度齣發,利用IPython解釋器、Jupyter Notebook等Python工具,對Python的各個方麵進行瞭介紹。
《自學Python——編程基礎、科學計算及數據分析》首先介紹Python工具的使用,以及Python的基礎和進階用法,為讀者打下良好的基礎:優秀的工具能幫助讀者更有效地學習和使用Python,基礎和進階用法能讓讀者對Python有一些基本的認知。
接著,本書介紹一些關鍵的Python模塊,包括Python標準庫中的自帶模塊、NumPy、Matplotlib、SciPy、Pandas等,這些模塊提供瞭強大的功能:標準庫模塊提供瞭處理編程常見問題的工具,NumPy模塊提供瞭科學計算的基礎類型——數組,Matplotlib可以對數據進行可視化,SciPy可以進行一些高等數學的操作,而Pandas模塊則提供瞭數據分析的基本 功能。
除瞭用法和模塊,本書還介紹瞭Python中的麵嚮對象編程,囿於篇幅,本書隻介紹麵嚮對象編程的用法,對這一機製不做過多介紹。
最後,在已學習內容的基礎上,本書提供瞭一個用Python分析中文小說的實例,並簡要介紹數據分析的一些基本流程,供讀者參考。
《自學Python——編程基礎、科學計算及數據分析》基於學習筆記而來,內容更貼近讀者,例子也盡可能地簡單易懂。除瞭介紹用法,本書還加入瞭很多原理解釋,並輔以實例進行說明。因此,與其他Python書籍相比,本書不僅具有知其然的功能,還具有知其所以然的特點,從而能更好地幫助初學者進行學習。
《自學Python——編程基礎、科學計算及數據分析》使用的Python版本為2.7。考慮到書中涉及模塊的功能,可能會隨版本更新而改變,因此,本書主要介紹各個模塊的核心功能,對於一些細節用法不做過多介紹。
緻謝
我要感謝我的傢人,他們默默的支持,是我最堅實的後盾。
我要感謝我的導師張長水教授,他嚴謹的教導,使我終生受益。
我要感謝我的朋友蔣楠、鬍捷、王磊和潘偉燊,感謝他們參與本書的編寫工作。
我還要感謝辛苦的編輯王斌(IT大公雞),有瞭他的鼎力協助,纔有瞭這本書的成形與齣版。
本書內容參考瞭很多朋友總結分享的資料和知識,雖不可能完全統計齣對本書的內容做齣貢獻的所有人士,但在這裏,我要對那些沒有被提及的貢獻者們緻以最誠摯的謝意。
迴顧這近一年的寫作曆程,我感覺十分幸運。種種機緣巧閤促成瞭這本書的誕生,這段寫作的過程也必將成為我一生中最值得記憶的一段經曆。非常希望本書能夠對學習Python的朋友有所幫助!
李 金
2017.8.27
探索數據驅動的未來:一本關於 Python 編程、科學計算與數據分析的進階指南 在當今信息爆炸的時代,掌握數據分析能力已成為一項至關重要的技能,無論您是希望在學術領域取得突破,還是在商業世界中尋求競爭優勢,抑或是僅僅想深入理解周圍世界運行的規律,數據都扮演著核心角色。而 Python,憑藉其簡潔的語法、強大的庫生態係統以及活躍的社區支持,已然成為數據科學領域的首選語言。 本書並非一本簡單的入門教程,而是一本麵嚮希望深入理解 Python 在科學計算和數據分析中強大能力的進階指南。它將帶領您從 Python 編程的基礎概念齣發,逐步深入到其在處理復雜科學問題和進行深度數據洞察方麵的應用。我們旨在為您構建一個堅實而全麵的知識體係,讓您能夠自信地駕馭數據,發現隱藏的模式,並將其轉化為有價值的見解。 本書的核心目標: 精通 Python 編程基礎: 在假定您對基本編程概念(如變量、數據類型、控製流、函數等)有所瞭解的基礎上,我們將重點迴顧和鞏固 Python 的核心特性,並著重講解那些對數據處理尤為重要的概念,例如高效的數據結構、麵嚮對象的編程思想、模塊化開發以及錯誤處理機製。我們將通過大量貼近實際應用場景的代碼示例,幫助您熟練運用 Python 構建更健壯、可維護的代碼。 深入理解科學計算的核心: 科學計算是利用計算機來解決科學和工程問題的學科。本書將重點介紹 Python 在這一領域的關鍵庫,特彆是 NumPy。您將學會如何高效地使用 NumPy 進行多維數組的創建、操作和數學運算,理解其內存管理機製,以及如何利用其強大的嚮量化運算能力來加速您的計算過程。從綫性代數、傅裏葉變換到隨機數生成,我們將逐一剖析 NumPy 的核心功能,並展示其在物理模擬、信號處理、圖像分析等領域的實際應用。 掌握數據分析的全流程: 數據分析是一個係統性的過程,涉及數據的獲取、清洗、轉換、探索、建模和可視化。本書將圍繞 Pandas 這一數據分析領域的瑞士軍刀展開。您將學習如何使用 Pandas 讀取不同格式的數據(CSV, Excel, SQL 數據庫等),如何進行數據清洗(處理缺失值、異常值,數據類型轉換),如何進行數據轉換和重塑(分組、聚閤、閤並、連接),以及如何使用 Pandas 的強大功能進行探索性數據分析(EDA),從而快速理解數據的基本特徵和潛在關係。 解鎖數據可視化與洞察: 數據本身是冰冷的,隻有通過有效的可視化纔能將其轉化為易於理解的洞察。本書將介紹 Matplotlib 和 Seaborn 這兩個強大的 Python 數據可視化庫。您將學習如何創建各種統計圖錶,如摺綫圖、散點圖、柱狀圖、箱綫圖、熱力圖等,並掌握如何調整圖錶的樣式、添加注釋,使其更具錶現力。通過直觀的圖錶,您將能夠更清晰地發現數據中的趨勢、模式和異常,從而做齣更明智的決策。 初步接觸機器學習與統計建模: 在掌握瞭數據處理和可視化的基礎上,本書將為您打開機器學習和統計建模的入門之門。我們將介紹 Scikit-learn 庫,並講解一些基本的機器學習概念,例如監督學習(迴歸、分類)和無監督學習(聚類)。您將學習如何準備數據以供模型使用,如何選擇閤適的模型,以及如何評估模型的性能。同時,我們也會觸及一些基本的統計概念,例如假設檢驗、置信區間等,並展示如何在 Python 中實現這些分析。 本書的獨特之處: 理論與實踐並重: 我們堅信,隻有通過動手實踐纔能真正掌握知識。本書中的每一個概念都配有詳細的代碼示例,這些示例不僅能夠驗證理論知識,更重要的是能夠指導您如何在實際問題中應用這些技術。我們鼓勵讀者積極動手嘗試、修改代碼,並將其應用於自己的數據項目中。 循序漸進的學習路徑: 本書的設計遵循“由淺入深,由易到難”的原則。我們從 Python 編程的基礎開始,逐步過渡到更復雜的科學計算和數據分析技術。即使您之前對某些領域有所接觸,本書也能夠幫助您係統性地梳理和深化理解。 聚焦核心工具與技術: 我們選擇介紹 Python 生態係統中最為核心和廣泛使用的庫,如 NumPy, Pandas, Matplotlib, Seaborn 和 Scikit-learn。掌握瞭這些工具,您將能夠應對絕大多數的數據科學任務。 強調問題解決導嚮: 本書的編寫思路始終圍繞著“如何利用 Python 解決實際的數據科學問題”。我們不僅僅是羅列語法和功能,更重要的是解釋這些技術背後的原理,以及它們是如何幫助我們解決具體問題的。 前沿主題的初步探索: 在掌握瞭基礎知識後,本書還將為您指明進一步學習的方嚮,例如深度學習、大數據處理、雲計算平颱等,讓您對數據科學的廣闊領域有一個初步的認識。 誰適閤閱讀本書: 在校學生: 正在學習計算機科學、統計學、數學、工程學、經濟學等專業的學生,希望將理論知識與實際數據分析工具相結閤。 初入職場的數據愛好者: 希望通過學習 Python 獲得數據分析能力,從而在求職市場上更具競爭力。 希望提升工作效率的專業人士: 無論您是從事金融、市場營銷、生物醫學、社會科學還是其他領域,如果您的工作涉及數據處理和分析,本書都能為您提供有效的工具和方法。 對數據探索充滿好奇的任何人: 即使您沒有明確的職業目標,但對數據如何揭示世界的奧秘充滿興趣,本書將是您探索數據世界的一扇窗。 本書內容概述: 第一部分:Python 編程基礎與數據處理哲學 Python 核心迴顧與進階: 數據類型、集閤、函數、類與對象、模塊化編程、異常處理。 數據處理的思維模式: 理解數據結構、嚮量化思維、函數式編程理念在數據處理中的應用。 第二部分:NumPy:科學計算的基石 ndarray 對象: 創建、索引、切片、重塑。 數學運算與函數: 元素級運算、通用函數 (ufuncs)、統計函數、綫性代數運算。 廣播機製: 理解和應用 NumPy 的廣播功能。 內存管理與性能優化: 淺拷貝與深拷貝、視圖與副本、嚮量化代碼的優勢。 第三部分:Pandas:數據分析的瑞士軍刀 Series 與 DataFrame: 數據結構的創建、操作與索引。 數據讀取與寫入: CSV, Excel, JSON, SQL 等格式的處理。 數據清洗與預處理: 缺失值處理、重復值處理、數據類型轉換、字符串操作。 數據轉換與重塑: 閤並 (merge)、連接 (join)、追加 (append)、分組 (groupby)、聚閤 (agg)、透視錶 (pivot table)。 時間序列分析: 日期和時間數據的處理、重采樣、滑動窗口。 多級索引與高級索引。 第四部分:數據可視化:洞察的眼睛 Matplotlib 基礎: 圖錶元素、坐標係、樣式設置。 常用圖錶類型: 摺綫圖、散點圖、柱狀圖、餅圖、直方圖、箱綫圖。 Seaborn: 統計圖錶的高級應用、美觀的默認樣式、處理分類數據。 探索性數據分析 (EDA) 中的可視化: 使用圖錶發現數據中的關係和模式。 自定義與美化圖錶: 調整顔色、標簽、標題、圖例。 第五部分:初探機器學習與統計建模 機器學習基礎概念: 監督學習、無監督學習、模型評估。 Scikit-learn 入門: 數據預處理、模型訓練與預測。 常用算法簡介: 綫性迴歸、邏輯迴歸、K-Means 聚類。 統計學基礎: 描述性統計、推斷性統計簡介。 結語: 掌握 Python、科學計算與數據分析,您將獲得一種強大的新視角來理解世界。本書旨在為您提供開啓這段旅程所需的知識和技能。我們相信,通過係統學習和大量的實踐,您將能夠自信地運用數據解決復雜的問題,發現隱藏的洞察,並在不斷變化的世界中保持領先。現在,讓我們一起踏上這段激動人心的數據探索之旅吧!