內容簡介
Python是由Guido van Rossum于20世紀80年代末和90年代初,在荷蘭國家數學和計算機科學研究所設計出來的。它是一種面向對象的、用途非常廣泛的編程語言,具有非常清晰的語法特點,適用于多種操作系統。目前Python在國際上非常流行,正在得到越來越多的應用。
Python可以完成許多任務,功能非常強大,其利用Pandas處理大數據的過程,由于Pandas庫的使用能夠很好地展現數據結構,成為近來Python項目中經常使用的熱門技術,并且R和Spark對Python都有很好的調用接口,甚至在內存使用方面都有優化。
本書根據作者多年教學經驗編寫,條理清楚,內容深淺適中,盡量讓讀者從實例出發,結合課后練習,少走彎路。本書涉及的內容主要包括Python數據類型與運算、流程控制及函數與類、Pandas庫的數據處理與分析等。在本書的最后,還附帶了一些文件讀寫、網絡爬蟲、矩陣計算等最基本的內容。
本書可以作為本科生、研究生以及科研人員學習Python的基礎教材。
前 言
在寫作本書的時候,國內大多數參考書還是Python 2.7版本,為了給在校大學生開設這門Python課程,我們選擇了Python 3.x,畢竟Python 3.x才是未來。與其讓學生們從Python 2.7開始學,還不如直接從Python 3.x上手,以掌握更加完善的知識。
作者通過近三輪的教學,對Python 3.x的基礎知識進行了篩選和總結,特編寫此書,希望能夠給準備使用Python的讀者提供一些方便。
本書由淺入深,比較適合那些從未接觸過計算機語言的讀者。每章配有大量的示例代碼,希望讀者在使用本書的時候,能夠盡可能自己敲代碼,少用復制粘貼的方法,這樣有利于讀者盡快進入“角色”,畢竟“拷貝得來終覺淺”。
本書的前3章是Python的基礎知識;第4章是利用Pandas庫對數據進行處理、分析以及實現數據可視化;在第5章還列出了Python對文件的讀取、存儲方法,對網絡爬蟲、矩陣運算也做了簡單的介紹。
作者在編寫本書的過程中,得到了Python工程師齊偉的幫助。在開設這門課的時候,齊偉通過視頻的形式與我們一起分享了Python開發經驗。本書在完稿時,得到了研究生閆青、陳文華、馬秀、樊宇凱和盧超在文字校對上的幫助。
最后感謝廣大讀者選擇了本書,預祝您順利學會Python語言。
編 者
目錄
第1章 Python簡介 1
1.1 安裝Python 2
1.2 Python 2和Python 3的區別 5
本章小結 8
練習 8
第2章 Python數據類型與運算 9
2.1 數據類型 11
2.2 運算符與功能命令 12
2.2.1 算數運算符 12
2.2.2 比較運算符 12
2.2.3 賦值運算符 13
2.2.4 常量與變量 15
2.2.5 字符串 16
2.2.6 字符串索引與切片 18
2.2.7 輸入和輸出 20
2.2.8 原始字符串 21
2.2.9 range 22
2.2.10 元組、列表、字典、集合 22
2.2.11 格式化輸出 37
2.2.12 strip、split 40
2.2.13 divmod() 42
2.2.14 join() 42
本章小結 43
練習 47
第3章 流程控制及函數與類 49
3.1 流程控制 52
3.1.1 if-else 52
3.1.2 for循環 53
3.1.3 while循環 54
3.1.4 continue和break 54
3.2 遍歷 56
3.2.1 range()函數 56
3.2.2 列表與元組的遍歷 59
3.3 函數 61
3.3.1 函數的定義 61
3.3.2 函數的使用 62
3.3.3 形參和實參 63
3.3.4 參數的傳遞和改變 63
3.3.5 變量的作用域 66
3.3.6 函數參數的類型 68
3.3.7 任意個數的參數 70
3.3.8 函數調用 71
3.4 函數式編程 74
3.4.1 lambda 74
3.4.2 reduce() 75
3.4.3 filter() 76
3.4.4 map() 77
3.4.5 行函數 77
3.5 常用的內置函數 78
3.5.1 sum 78
3.5.2 zip 79
3.5.3 enumerate 80
3.5.4 max和min 81
3.5.5 eval 81
3.5.6 判斷函數 83
3.6 常見的錯誤顯示 86
3.6.1 常見的錯誤類型 87
3.6.2 初學者常犯的錯誤 89
3.6.3 try 93
3.6.4 assert 95
3.6.5 raise 95
3.7 模塊和包 96
3.7.1 模塊(module) 96
3.7.2 包(package) 100
3.7.3 datetime和calendar模塊 101
3.7.4 urllib模塊 105
3.8 類 106
本章小結 109
練習 109
第4章 Python數據分析實戰 113
4.1 關于Pandas 114
4.1.1 什么是Pandas 114
4.1.2 Pandas中的數據結構 114
4.1.3 Pandas的安裝方法 114
4.1.4 在Anaconda中安裝
第三方庫 118
4.2 數據準備 119
4.2.1 數據類型 119
4.2.2 數據結構 120
4.2.3 數據導入 128
4.2.4 數據導出 131
4.3 數據處理 133
4.3.1 數據清洗 133
4.3.2 數據抽取 138
4.3.3 排名索引 147
4.3.4 數據合并 151
4.3.5 數據計算 154
4.3.6 數據分組 156
4.3.7 日期處理 157
4.4 數據分析 162
4.4.1 基本統計 162
4.4.2 分組分析 163
4.4.3 分布分析 165
4.4.4 交叉分析 167
4.4.5 結構分析 169
4.4.6 相關分析 170
4.5 數據可視化 172
4.5.1 餅圖 172
4.5.2 散點圖 174
4.5.3 折線圖 176
4.5.4 柱形圖 180
4.5.5 直方圖 183
本章小結 184
練習 184
第5章 其他 187
5.1 文件讀寫操作 188
5.1.1 文件的讀寫方法 189
5.1.2 文件的其他方法 190
5.1.3 文件的存儲和讀取 190
5.2 with語句 192
5.3 Anaconda下安裝statsmodels包 193
5.4 關于Spyder界面恢復默認狀態的
處理 195
5.5 關于Python計算精度的問題 197
5.6 矩陣運算 200
5.6.1 創建矩陣 200
5.6.2 矩陣屬性 200
5.6.3 解線性方程組 201
5.6.4 線性規劃最優解 202
5.7 正則表達式 203
5.8 使用urllib打開網頁 209
5.9 網頁數據抓取 212
5.10 讀取文檔 217
本章小結 222
練習 222
參考文獻 224