本書主要介紹利用Python進(jìn)行科學(xué)計算的方法,其內(nèi)容從基礎(chǔ)知識到實際開發(fā)應(yīng)用,由淺入深,通俗易懂。每章均配有針對性的案例,供讀者實踐練習(xí),提高讀者數(shù)據(jù)分析能力和實踐動手能力。本書的主要內(nèi)容包括Python開發(fā)的環(huán)境搭建,Python基礎(chǔ),對文本文件、CSV文件、Excel文件、JSON文件的操作,訪問SQLite數(shù)據(jù)庫與MySQL數(shù)據(jù)庫,使用NumPy類庫、Pandas類庫、SciPy類庫進(jìn)行科學(xué)計算,使用Matplotlib、Seaborn、pyecharts等類庫實現(xiàn)數(shù)據(jù)可視化。本書通過探索真實的鄭州二手房數(shù)據(jù)集,幫助讀者逐步掌握數(shù)據(jù)的采集、清洗、整理及分析計算,并結(jié)合數(shù)據(jù)可視化組件,實現(xiàn)數(shù)據(jù)圖表到可視化的轉(zhuǎn)換,進(jìn)而提高讀者解決實際問題的能力。 本書既可以作為高等本科院校Python科學(xué)計算課程的教材,也可以作為應(yīng)用型本科、高職高專院校相應(yīng)課程的教材。
王英強(qiáng),副教授。2003年4月—至今,任西安思源學(xué)院電子信息工程學(xué)院教師;2008年9月—2011年7月,就讀于西安電子科技大學(xué),獲得工學(xué)碩士學(xué)位;1999年9月—2003年7月,就讀于太原科技大學(xué)計算機(jī)科學(xué)與技術(shù)專業(yè),獲得工學(xué)學(xué)士學(xué)位。參加的學(xué)術(shù)組織及任職:陜西省計算機(jī)學(xué)會會員。所承擔(dān)過的重點科研或教研項目及在項目中所承擔(dān)的工作:主持完成了2018年陜西省教育廳專項課題《大數(shù)據(jù)環(huán)境下西安市農(nóng)業(yè)統(tǒng)計數(shù)據(jù)采集分析平臺的研究》;支持完成了多項校級科研、教改項目;主持完成了《天然氣管道壓力數(shù)據(jù)自動采集系統(tǒng)》、《車機(jī)聯(lián)控系統(tǒng)》等多項橫向課題。個人或集體榮譽(yù):2018年獲得西安思源學(xué)院建校二十周年青年英才獎;獲得多項軟件著作權(quán);多次畢業(yè)設(shè)計優(yōu)秀指導(dǎo)教師。教學(xué)成果獲獎情況、作品獲獎情況:《移動平臺下軟件開發(fā)教學(xué)的研究》獲得西安思源學(xué)院教學(xué)成果二等獎;《Android應(yīng)用程序設(shè)計》獲得2018年陜西計算機(jī)學(xué)會優(yōu)秀教材一等獎。主要著作出版情況:《Android應(yīng)用程序設(shè)計》清華大學(xué)出版社,2013.10月出版;《Android應(yīng)用程序設(shè)計》(第二版)清華大學(xué)出版社,2016.12月出版。
目 錄
第1篇 數(shù)據(jù)獲取篇
第1章 概述 2
1.1 科學(xué)計算概述 2
1.2 Python概述 3
1.3 Python開發(fā)環(huán)境搭建 4
1.3.1 Python運(yùn)行環(huán)境安裝 4
1.3.2 PyCharm安裝 8
1.4 Python科學(xué)計算與可視化常用類庫 13
1.4.1 Python科學(xué)計算與可視化常用類庫介紹 13
1.4.2 安裝第三方類庫 14
第2章 Python基礎(chǔ) 17
2.1 基本語法 17
2.1.1 基本數(shù)據(jù)類型 17
2.1.2 標(biāo)識符 18
2.1.3 變量和賦值 18
2.1.4 運(yùn)算符和表達(dá)式 19
2.1.5 代碼的嵌套與對齊 19
2.1.6 注釋 20
2.2 復(fù)雜數(shù)據(jù)類型 20
2.2.1 字符串 20
2.2.2 列表 24
2.2.3 元組 27
2.2.4 字典 29
2.3 流程控制 32
2.3.1 條件控制 32
2.3.2 循環(huán)控制 33
2.4 函數(shù) 35
2.4.1 函數(shù)的定義 35
2.4.2 lambda匿名函數(shù) 35
2.4.3 函數(shù)調(diào)用 36
2.5 類 37
2.5.1 面向?qū)ο蠡靖拍?37
2.5.2 類的定義及實現(xiàn) 37
2.6 文件操作 39
2.6.1 文件處理過程 39
2.6.2 數(shù)據(jù)的讀取 40
2.6.3 數(shù)據(jù)的寫入 41
第3章 讀/寫文件 43
3.1 讀/寫文本文件 43
3.1.1 讀/寫文本文件的方法介紹 43
3.1.2 讀/寫文本數(shù)據(jù)實例 44
3.2 讀/寫CSV文件 49
3.2.1 CSV類庫 49
3.2.2 讀/寫CSV文件數(shù)據(jù)實例 50
3.3 讀/寫Excel文件 54
3.3.1 Excel文件相關(guān)類庫 54
3.3.2 讀/寫Excel文件數(shù)據(jù)實例 56
3.4 讀/寫JSON文件 62
3.4.1 類庫方法介紹 62
3.4.2 讀/寫JSON文件數(shù)據(jù)實例 63
3.5 綜合實例 67
第4章 訪問數(shù)據(jù)庫 74
4.1 SQLite3數(shù)據(jù)庫數(shù)據(jù)的插入、修改及刪除 74
4.1.1 SQLite3模塊常用方法 74
4.1.2 SQLite3數(shù)據(jù)庫操作實例 75
4.2 SQLite3數(shù)據(jù)庫數(shù)據(jù)的查詢 80
4.3 MySQL數(shù)據(jù)庫操作類的實現(xiàn) 82
4.4 MySQL數(shù)據(jù)庫的訪問 87
第2篇 數(shù)據(jù)處理篇
第5章 NumPy數(shù)據(jù)處理 91
5.1 NumPy基礎(chǔ) 91
5.1.1 認(rèn)識NumPy 91
5.1.2 創(chuàng)建NumPy數(shù)組 96
5.1.3 NumPy標(biāo)準(zhǔn)輸出 99
5.1.4 應(yīng)用案例:二手房文本數(shù)據(jù)處理 100
5.2 NumPy數(shù)組操作 102
5.2.1 數(shù)組的基礎(chǔ)運(yùn)算、形狀轉(zhuǎn)換 102
5.2.2 數(shù)組的形狀 105
5.2.3 數(shù)組的索引、切片 106
5.2.4 數(shù)組的遍歷 108
5.2.5 數(shù)組的副本與視圖 110
5.3 NumPy應(yīng)用案例:鄭州市二手房數(shù)據(jù)統(tǒng)計及計算 113
第6章 Pandas科學(xué)計算 116
6.1 Pandas概述 116
6.1.1 Pandas簡介 116
6.1.2 Pandas在數(shù)據(jù)處理領(lǐng)域中的優(yōu)勢 117
6.2 Pandas數(shù)據(jù)結(jié)構(gòu) 117
6.2.1 Series 118
6.2.2 DataFrame 120
6.3 Pandas數(shù)據(jù)操作 124
6.3.1 Pandas文件操作 124
6.3.2 索引和數(shù)據(jù)選擇器 128
6.3.3 合并與連接 131
6.3.4 日期時間數(shù)據(jù)的處理 136
6.4 Pandas應(yīng)用案例 142
6.4.1 分析鄭州市各區(qū)域的房屋均價 142
6.4.2 數(shù)據(jù)分析之GDP 144
第7章 SciPy科學(xué)計算 148
7.1 SciPy概述 148
7.2 SciPy科學(xué)方法 149
7.2.1 SciPy特殊函數(shù) 149
7.2.2 SciPy積分函數(shù) 150
7.2.3 插值函數(shù) 154
7.2.4 傅里葉變換 156
7.2.5 線性代數(shù) 158
7.3 SciPy應(yīng)用案例:使用最小二乘法預(yù)測房價走勢 160
7.4 SciPy延展 163
第3篇 數(shù)據(jù)展示篇
第8章 數(shù)據(jù)可視化之Matplotlib 166
8.1 圖表的基本構(gòu)成元素 166
8.2 第一個Matplotlib繪圖程序 167
8.2.1 折線圖的繪制、存儲與顯示 167
8.2.2 折線圖的更多設(shè)置 168
8.2.3 設(shè)置中文字體 169
8.2.4 繪制多個圖形 170
8.2.5 使用子圖 172
8.3 繪制柱狀圖 173
8.4 繪制餅狀圖 174
8.5 繪制散點圖 175
8.6 綜合應(yīng)用實例 176
8.6.1 鄭州市二手房各區(qū)域分布柱狀圖 176
8.6.2 鄭州市二手房房屋類型比例餅狀圖 178
8.6.3 鄭州市二手房地理位置分布圖 180
第9章 數(shù)據(jù)可視化之Seaborn 183
9.1 Seaborn簡介、安裝和使用 183
9.2 Seaborn的樣式繪制 185
9.3 直方圖和密度曲線圖 188
9.4 條形圖 189
9.5 散點圖 190
9.6 箱線圖 191
9.7 小提琴圖 193
9.8 綜合應(yīng)用實例 194
9.8.1 繪制鄭州市二手房價格直方圖和密度曲線圖 194
9.8.2 繪制鄭州市二手房價格條形圖 195
第10章 數(shù)據(jù)可視化之pyecharts 197
10.1 pyecharts簡介、安裝和使用 197
10.2 pyecharts常用圖表 198
10.2.1 柱狀圖 198
10.2.2 折線圖 201
10.2.3 餅狀圖 204
10.2.4 詞云圖 204
10.2.5 雷達(dá)圖 205
10.3 綜合應(yīng)用實例 206
10.3.1 繪制鄭州市二手房數(shù)量區(qū)域分布圖 206
10.3.2 繪制鄭州市二手房房屋類型比例圖 208
參考文獻(xiàn) 210