本書在編寫過程中,首先收集了全世界380多所院校的數(shù)據(jù)科學和大數(shù)據(jù)相關的人才培養(yǎng)方案,然后使用非結構數(shù)據(jù)分析技術挖掘出編程類課程的主要內(nèi)容,進而形成本書的主要雛形。筆者在其編寫的《Python數(shù)據(jù)分析基礎》(第1版和第2版)的基礎上對雛形進行了完善。本書針對數(shù)據(jù)分析領域中編程類課程教學過程中的突出問題進行了仔細斟酌和調(diào)整,力求內(nèi)容生動、深入淺出、言簡意賅。全書采用mac OS Mojave操作系統(tǒng)下的Python3.7和Anaconda2018.12的Jupyter Notebook作為分析環(huán)境(如果讀者使用Windows系統(tǒng),也可運行本書全部代碼),希望讀者參考本書的內(nèi)容邊做邊學習。
前言(1)
1數(shù)據(jù)科學與編程語言(1)
1.1數(shù)據(jù)科學與數(shù)據(jù)分析(1)
1.2程序及其基本特征(2)
1.3算法(3)
1.3.1算法的表示方法(4)
1.3.2算法評價(7)
1.4數(shù)據(jù)結構(8)
1.5編程語言(9)
1.5.1Python語言(9)
1.5.2R語言(9)
1.5.3SAS語言(10)
2程序設計基礎知識(11)
2.1結構化程序設計(12)
2.2面向?qū)ο蟮某绦蛟O計(13)
2.2.1抽象(13)
2.2.2基本概念(14)
2.2.3基本特性(17)
3Python系統(tǒng)配置與基礎知識(19)
3.1Python系統(tǒng)配置(19)
3.2Python基礎知識(24)
3.2.1幫助(25)
3.2.2標識符(25)
3.2.3行與縮進(26)
3.2.4變量與對象(27)
3.2.5數(shù)字與表達式(29)
3.2.6運算符(31)
3.2.7字符串(31)
3.2.8日期和時間(40)
3.2.9語法糖(42)
3.2.10魔術命令(43)
4數(shù)據(jù)結構與序列(45)
4.1列表(45)
4.1.1列表索引和切片(46)
4.1.2列表操作(47)
4.1.3內(nèi)置列表函數(shù)(48)
4.1.4列表方法(49)
4.2元組(50)
4.3字典(51)
4.4集合(54)
4.5推導式(56)
5語句與控制流(59)
5.1順序語句(59)
5.2條件語句(59)
5.3循環(huán)語句(61)
5.3.1while循環(huán)(61)
5.3.2for循環(huán)(62)
5.3.3循環(huán)控制(63)
6函數(shù)(67)
6.1函數(shù)的定義(67)
6.2函數(shù)的參數(shù)(68)
6.3全局變量與局部變量(70)
6.4匿名函數(shù)(71)
6.5遞歸和閉包(72)
6.6柯里化與反柯里化(74)
6.7常用的內(nèi)置高階函數(shù)(75)
6.7.1filter函數(shù)(75)
6.7.2map函數(shù)(75)
6.7.3reduce函數(shù)(76)
7迭代器、生成器與裝飾器(77)
7.1迭代器(77)
7.2生成器(78)
7.3裝飾器(81)
8類(85)
8.1聲明類(85)
8.2方法(87)
8.2.1實例方法(87)
8.2.2類方法(89)
8.2.3靜態(tài)方法(90)
8.3屬性(91)
8.3.1實例屬性和類屬性(92)
8.3.2私有屬性和公有屬性(92)
8.4繼承(94)
8.4.1隱式繼承(94)
8.4.2顯式覆蓋(95)
8.4.3super繼承(96)
8.4.4多態(tài)(98)
8.4.5多重繼承(100)
8.5特性(100)
9多核并行(107)
9.1多進程(109)
92并行(113)
10異常捕獲與容錯處理(117)
10.1語法錯誤和異常(117)
10.2異常處理(120)
10.2.1觸發(fā)異常(120)
10.2.2捕獲異常(121)
10.2.3其他處理(122)
11模塊和包(125)
11.1模塊(125)
11.2包(127)
11.2.1包的組成與調(diào)用(127)
11.2.2常用數(shù)據(jù)分析工具庫(128)
12文件I/O(133)
13numpy編程基礎(137)
13.1關于numpy(137)
13.2向量(140)
13.3數(shù)組(142)
13.3.1數(shù)據(jù)類型與結構數(shù)組(143)
13.3.2索引與切片(145)
13.3.3數(shù)組的屬性(150)
13.3.4數(shù)組排序(151)
13.3.5數(shù)組維度(153)
13.3.6數(shù)組組合(156)
13.3.7數(shù)組分拆(159)
13.3.8ufunc運算(160)
13.4矩陣(166)
13.5文件讀寫(167)
14pandas編程基礎(169)
14.1關于pandas(169)
14.2pandas的數(shù)據(jù)結構(170)
14.2.1Series(170)
14.2.2DataFrame(174)
14.3pandas的數(shù)據(jù)操作(185)
14.3.1排序(185)
14.3.2排名(187)
14.3.3運算(189)
14.3.4函數(shù)應用與映射(190)
14.3.5分組(192)
14.3.6合并(192)
14.3.7分類數(shù)據(jù)(195)
14.4時間序列(196)
14.4.1創(chuàng)建時間序列(197)
14.4.2索引與切片(199)
14.4.3范圍和偏移量(200)
14.4.4時間移動及運算(203)
14.4.5頻率轉換及重采樣(205)
14.5面板數(shù)據(jù)與層次化索引(207)
14.5.1創(chuàng)建Panel(208)
14.5.2堆積DataFrame(209)
14.5.3層次化索引(209)
14.6缺失值處理(211)
14.6.1缺失數(shù)據(jù)的形式(211)
14.6.2缺失數(shù)據(jù)填充與清洗(213)
14.6.3缺失數(shù)據(jù)插值(216)
15圖形與可視化的編程基礎(217)
15.1matplotlib基本繪圖(217)
15.1.1函數(shù)繪圖(217)
15.1.2圖形基本設置(224)
15.1.3面向?qū)ο罄L圖(231)
15.1.4繪圖樣式或風格(233)
15.2pandas基本繪圖(234)
15.3基本統(tǒng)計圖形(236)
15.3.1折線圖(236)
15.3.2面積圖(239)
15.3.3直方圖(240)
15.3.4條形圖(242)
15.3.5龍卷風圖(247)
15.3.6餅圖(247)
15.3.7階梯圖(249)
15.3.8盒須圖(250)
15.3.9小提琴圖(253)
15.3.10散點圖(254)
15.3.11氣泡圖(257)
15.3.12六邊形箱圖(258)
15.3.13雷達坐標圖(259)
15.3.14輪廓圖(260)
15.3.15調(diào)和曲線圖(261)
15.3.16等高線圖(262)
15.3.17極坐標圖(262)
15.3.18詞云圖(263)
15.3.19數(shù)據(jù)地圖(267)
15.4其他繪圖工具(269)
參考文獻(271)