本書主要介紹利用Python進(jìn)行科學(xué)計(jì)算的方法,其內(nèi)容從基礎(chǔ)知識(shí)到實(shí)際開發(fā)應(yīng)用,由淺入深,通俗易懂。每章均配有針對(duì)性的案例,供讀者實(shí)踐練習(xí),提高讀者數(shù)據(jù)分析能力和實(shí)踐動(dòng)手能力。本書的主要內(nèi)容包括Python開發(fā)的環(huán)境搭建,Python基礎(chǔ),對(duì)文本文件、CSV文件、Excel文件、JSON文件的操作,訪問SQLite數(shù)據(jù)庫(kù)與MySQL數(shù)據(jù)庫(kù),使用NumPy類庫(kù)、Pandas類庫(kù)、SciPy類庫(kù)進(jìn)行科學(xué)計(jì)算,使用Matplotlib、Seaborn、pyecharts等類庫(kù)實(shí)現(xiàn)數(shù)據(jù)可視化。本書通過探索真實(shí)的鄭州二手房數(shù)據(jù)集,幫助讀者逐步掌握數(shù)據(jù)的采集、清洗、整理及分析計(jì)算,并結(jié)合數(shù)據(jù)可視化組件,實(shí)現(xiàn)數(shù)據(jù)圖表到可視化的轉(zhuǎn)換,進(jìn)而提高讀者解決實(shí)際問題的能力。 本書既可以作為高等本科院校Python科學(xué)計(jì)算課程的教材,也可以作為應(yīng)用型本科、高職高專院校相應(yīng)課程的教材。
王英強(qiáng),副教授。2003年4月—至今,任西安思源學(xué)院電子信息工程學(xué)院教師;2008年9月—2011年7月,就讀于西安電子科技大學(xué),獲得工學(xué)碩士學(xué)位;1999年9月—2003年7月,就讀于太原科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè),獲得工學(xué)學(xué)士學(xué)位。參加的學(xué)術(shù)組織及任職:陜西省計(jì)算機(jī)學(xué)會(huì)會(huì)員。所承擔(dān)過的重點(diǎn)科研或教研項(xiàng)目及在項(xiàng)目中所承擔(dān)的工作:主持完成了2018年陜西省教育廳專項(xiàng)課題《大數(shù)據(jù)環(huán)境下西安市農(nóng)業(yè)統(tǒng)計(jì)數(shù)據(jù)采集分析平臺(tái)的研究》;支持完成了多項(xiàng)校級(jí)科研、教改項(xiàng)目;主持完成了《天然氣管道壓力數(shù)據(jù)自動(dòng)采集系統(tǒng)》、《車機(jī)聯(lián)控系統(tǒng)》等多項(xiàng)橫向課題。個(gè)人或集體榮譽(yù):2018年獲得西安思源學(xué)院建校二十周年青年英才獎(jiǎng);獲得多項(xiàng)軟件著作權(quán);多次畢業(yè)設(shè)計(jì)優(yōu)秀指導(dǎo)教師。教學(xué)成果獲獎(jiǎng)情況、作品獲獎(jiǎng)情況:《移動(dòng)平臺(tái)下軟件開發(fā)教學(xué)的研究》獲得西安思源學(xué)院教學(xué)成果二等獎(jiǎng);《Android應(yīng)用程序設(shè)計(jì)》獲得2018年陜西計(jì)算機(jī)學(xué)會(huì)優(yōu)秀教材一等獎(jiǎng)。主要著作出版情況:《Android應(yīng)用程序設(shè)計(jì)》清華大學(xué)出版社,2013.10月出版;《Android應(yīng)用程序設(shè)計(jì)》(第二版)清華大學(xué)出版社,2016.12月出版。
目 錄
第1篇 數(shù)據(jù)獲取篇
第1章 概述 2
1.1 科學(xué)計(jì)算概述 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é)計(jì)算與可視化常用類庫(kù) 13
1.4.1 Python科學(xué)計(jì)算與可視化常用類庫(kù)介紹 13
1.4.2 安裝第三方類庫(kù) 14
第2章 Python基礎(chǔ) 17
2.1 基本語法 17
2.1.1 基本數(shù)據(jù)類型 17
2.1.2 標(biāo)識(shí)符 18
2.1.3 變量和賦值 18
2.1.4 運(yùn)算符和表達(dá)式 19
2.1.5 代碼的嵌套與對(duì)齊 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 類的定義及實(shí)現(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ù)實(shí)例 44
3.2 讀/寫CSV文件 49
3.2.1 CSV類庫(kù) 49
3.2.2 讀/寫CSV文件數(shù)據(jù)實(shí)例 50
3.3 讀/寫Excel文件 54
3.3.1 Excel文件相關(guān)類庫(kù) 54
3.3.2 讀/寫Excel文件數(shù)據(jù)實(shí)例 56
3.4 讀/寫JSON文件 62
3.4.1 類庫(kù)方法介紹 62
3.4.2 讀/寫JSON文件數(shù)據(jù)實(shí)例 63
3.5 綜合實(shí)例 67
第4章 訪問數(shù)據(jù)庫(kù) 74
4.1 SQLite3數(shù)據(jù)庫(kù)數(shù)據(jù)的插入、修改及刪除 74
4.1.1 SQLite3模塊常用方法 74
4.1.2 SQLite3數(shù)據(jù)庫(kù)操作實(shí)例 75
4.2 SQLite3數(shù)據(jù)庫(kù)數(shù)據(jù)的查詢 80
4.3 MySQL數(shù)據(jù)庫(kù)操作類的實(shí)現(xiàn) 82
4.4 MySQL數(shù)據(jù)庫(kù)的訪問 87
第2篇 數(shù)據(jù)處理篇
第5章 NumPy數(shù)據(jù)處理 91
5.1 NumPy基礎(chǔ) 91
5.1.1 認(rèn)識(shí)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)計(jì)及計(jì)算 113
第6章 Pandas科學(xué)計(jì)算 116
6.1 Pandas概述 116
6.1.1 Pandas簡(jiǎn)介 116
6.1.2 Pandas在數(shù)據(jù)處理領(lǐng)域中的優(yōu)勢(shì) 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í)間數(shù)據(jù)的處理 136
6.4 Pandas應(yīng)用案例 142
6.4.1 分析鄭州市各區(qū)域的房屋均價(jià) 142
6.4.2 數(shù)據(jù)分析之GDP 144
第7章 SciPy科學(xué)計(jì)算 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ù)測(cè)房?jī)r(jià)走勢(shì) 160
7.4 SciPy延展 163
第3篇 數(shù)據(jù)展示篇
第8章 數(shù)據(jù)可視化之Matplotlib 166
8.1 圖表的基本構(gòu)成元素 166
8.2 第一個(gè)Matplotlib繪圖程序 167
8.2.1 折線圖的繪制、存儲(chǔ)與顯示 167
8.2.2 折線圖的更多設(shè)置 168
8.2.3 設(shè)置中文字體 169
8.2.4 繪制多個(gè)圖形 170
8.2.5 使用子圖 172
8.3 繪制柱狀圖 173
8.4 繪制餅狀圖 174
8.5 繪制散點(diǎn)圖 175
8.6 綜合應(yīng)用實(shí)例 176
8.6.1 鄭州市二手房各區(qū)域分布柱狀圖 176
8.6.2 鄭州市二手房房屋類型比例餅狀圖 178
8.6.3 鄭州市二手房地理位置分布圖 180
第9章 數(shù)據(jù)可視化之Seaborn 183
9.1 Seaborn簡(jiǎn)介、安裝和使用 183
9.2 Seaborn的樣式繪制 185
9.3 直方圖和密度曲線圖 188
9.4 條形圖 189
9.5 散點(diǎn)圖 190
9.6 箱線圖 191
9.7 小提琴圖 193
9.8 綜合應(yīng)用實(shí)例 194
9.8.1 繪制鄭州市二手房?jī)r(jià)格直方圖和密度曲線圖 194
9.8.2 繪制鄭州市二手房?jī)r(jià)格條形圖 195
第10章 數(shù)據(jù)可視化之pyecharts 197
10.1 pyecharts簡(jiǎn)介、安裝和使用 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)用實(shí)例 206
10.3.1 繪制鄭州市二手房數(shù)量區(qū)域分布圖 206
10.3.2 繪制鄭州市二手房房屋類型比例圖 208
參考文獻(xiàn) 210