天天看點

《 Python資料可視化》導讀

《 Python資料可視化》導讀

前  言 

資料可視化旨在清楚明了地提供資訊,幫助讀者定性了解這些資訊。俗話說,一圖勝千字(百聞不如一見)。這裡,可以換個說法,“一幅圖講述了一個故事,如同萬語千言。”是以,可視化是一個寶貴的工具,有助于讀者快速了解相應的概念。然而,與其說資料可視化是一種技能,還不如說它是一門藝術。這是因為,如過度使用資料可視化會适得其反。

目前,有太多資料需要處理。這些資料包含着許多見解,這些見解是成功的關鍵。能夠發現資料、清洗資料,并使用正确的工具實作可視化至關重要。本書講解了用python軟體包實作資料可視化的不同方法,并給出很多不同領域的案例,比如,數值計算、金融模型、統計和機器學習,以及遺傳學與網絡。

本書提供在mac os x 10.10.5系統上運作的案例程式,具體用到python 2.7、ipython 0.13.2、matplotlib 1.4.3、numpy 1.9.2、scipy 0.16.0和conda建構1.14.1版本。

本書主要内容

第1章闡述了資料可視化确實應該被稱為“用于知識推斷的資料可視化”。本章包含架構,講解資料/資訊如何轉換為知識,以及有意義的呈現方式(通過取對數、顔色映射、散點圖、相關性以及其他)如何能夠幫助我們更容易地掌握知識。

第2章講述可視化的重要性,展示可視化過程中的一些步驟,包括可選擇的幾種工具選項。可視化方法由來已久,很早之前我們就接觸過這些方法;比如,連年幼的小孩都能解釋條形圖。互動式可視化有很多優點,本章将舉例說明。

第3章解釋了從continuum analytics使用anaconda時,不必安裝每個python庫的原因。anaconda有簡化的打包和部署方法,這些方法使得ipython notebook與其他庫的并行運算變得更加容易。

第4章包括互動式繪圖方法及在計算實體和應用數學中的實踐案例。一些著名的案例包括用scipy實作插值方法、近似、聚類、抽樣、相關關系和凸優化。 

第5章探索金融工程,該領域有很多數值計算和圖表繪制的方法,是探索python的一個有趣的案例。本章通過舉例講述股票報價、回歸分析、蒙特卡洛算法和模拟方法。

第6章包含了用numpy、scipy、matplotlib和scikit-learn等工具進行處理的統計方法,比如,線性、非線性回歸、聚類和分類。

第7章包含了有趣的案例,比如社交網絡以及現實生活中的有向圖舉例,适用于這些問題的資料結構,以及網絡分析。本章會用到一些具體的庫,比如graph-tool、networkx、matplotlib、scipy和numpy。

第8章包含模拟方法和信号處理案例,用以展示一些可視化方法。這裡,我們也給出了其他進階工具的對比,比如julia和d3.js。

附錄給出了conda概述,并列出多種python庫。

學習本書的準備工作

本書要求使用者在作業系統上安裝2.7.6或以上版本的python。對于書中的案例,可以使用mac os x 10.10.5的python預設版本(2.7.6)來實作。其他會用到的軟體包是ipython—一個互動式python環境。新版的ipython叫jupyter,該版本現在有50種不同語言的核心函數。

安裝提前打包好的用于科學計算的python發行版,如果可能的話,可以從continuum安裝anaconda,或安裝enthought python distribution。anaconda一般自帶300多個python軟體包。你可以用pip或conda安裝不在自帶軟體包清單中的python軟體包。有一些案例可見附錄。

本書适用對象

目前已有很多python和資料可視化方面的書。然而,對于有一定python知識儲備的人來說,幾乎很少有把兩者内容結合在一起的書值得推薦。有關簡化代碼、重複使用的小生境(niche)技術的讨論更是少之又少。對于有強烈學習興趣的python開發人員,本書将提供一系列獲得分析結果和産生驚人可視化效果的方法。

本書提供了解決實際問題的一系列分析方法。雖然本書并不是面向初學者的,但是如果有需要,你可以搜尋書中推薦閱讀的文獻資料。如果這是你初次體驗python程式設計或資料可視化,提前閱讀一些入門教材會有很大幫助。我最喜歡的書有john guttag教授的《introduction to computer science and programming》(可從mit opencourseware上免費下載下傳)和來自ucla的nathan yau的《visualize this》。

目  錄 

第1章 資料可視化概念架構

<a href="https://yq.aliyun.com/articles/83343/" target="_blank">1.1 資料、資訊、知識和觀點</a>

<a href="https://yq.aliyun.com/articles/83349/" target="_blank">1.2 資料轉換</a>

<a href="https://yq.aliyun.com/articles/83371/" target="_blank">1.3 資料可視化曆史</a>

<a href="https://yq.aliyun.com/articles/83377/" target="_blank">1.4 可視化如何幫助決策</a>

<a href="https://yq.aliyun.com/articles/83384/" target="_blank">1.5 可視化圖像</a>

<a href="https://yq.aliyun.com/articles/83390/" target="_blank">1.6 總結</a>

第2章 資料分析與可視化

<a href="https://yq.aliyun.com/articles/83395/" target="_blank">2.1 為什麼可視化需要規劃</a>

<a href="https://yq.aliyun.com/articles/83403/" target="_blank">2.2 ebola案例</a>

<a href="https://yq.aliyun.com/articles/83410/" target="_blank">2.3 體育案例</a>

<a href="https://yq.aliyun.com/articles/83417/" target="_blank">2.4 用資料編寫有趣的故事</a>

<a href="https://yq.aliyun.com/articles/83423/" target="_blank">2.5 感覺與表達方法</a>

<a href="https://yq.aliyun.com/articles/83426/" target="_blank">2.6 一些最好的可視化實踐</a>

<a href="https://yq.aliyun.com/articles/83429/" target="_blank">2.7 python中的可視化工具</a>

<a href="https://yq.aliyun.com/articles/83434/" target="_blank">2.8 互動式可視化</a>

<a href="https://yq.aliyun.com/articles/83437/" target="_blank">2.9 總結</a>

第3章 開始使用python ide

3.1 python中的ide工具

3.2 anaconda可視化繪圖

3.3 互動式可視化軟體包

3.4 總結

第4章 數值計算和互動式繪圖 92

4.1 numpy、scipy和mkl函數 93

4.1.1 numpy 93

4.1.2 scipy 99

4.1.3 mkl函數 105

4.1.4 python的性能 106

4.2 标量選擇 106

4.3 切片 107

4.4 數組索引 108

4.4.1 數值索引 108

4.4.2 邏輯索引 109

4.5 其他資料結構 110

4.5.1 棧 110

4.5.2 元組 111

4.5.3 集合 112

4.5.4 隊列 113

4.5.5 字典 114

4.5.6 字典的矩陣表示 115

4.5.7 trie樹 120

4.6 利用matplotlib進行可視化 121

4.6.1 詞雲 122

4.6.2 安裝詞雲 122

4.6.3 詞雲的輸入 124

4.6.4 繪制股票價格圖 129

4.7 體育運動中的可視化案例 136

4.8 總結 140

第5章 金融和統計模型 141

5.1 确定性模型 142

5.2 随機性模型 150

5.2.1 蒙特卡洛模拟 150

5.2.2 投資組合估值 168

5.2.3 模拟模型 170

5.2.4 幾何布朗運動模拟 170

5.2.5 基于擴散模拟 173

5.3 門檻值模型 175

5.4 統計與機器學習綜述 179

5.4.1 k-最近鄰算法 179

5.4.2 廣義線性模型 181

5.5 建立動畫和互動圖 184

5.6 總結 188

第6章 統計與機器學習 189

6.1 分類方法 190

6.1.1 了解線性回歸 191

6.1.2 線性回歸 193

6.1.3 決策樹 196

6.1.4 貝葉斯理論 199

6.1.5 樸素貝葉斯分類器 200

6.1.6 用textblob建構樸素貝葉斯分類器 202

6.1.7 用詞雲觀察積極情緒 206

6.2 k-最近鄰 208

6.3 邏輯斯谛回歸 211

6.4 支援向量機 214

6.5 主成分分析 216

6.6  k-均值聚類 220

6.7 總結 223

第7章 生物資訊學、遺傳學和網絡模型 224

7.1 有向圖和多重圖 225

7.1.1 存儲圖表資料 225

7.1.2 圖表展示 227

7.2 圖的聚集系數 235

7.3 社交網絡分析 238

7.4 平面圖測試 240

7.5 有向無環圖測試 242

7.6 最大流量和最小切割 244

7.7 遺傳程式設計示例 245

7.8 随機區組模型 247

7.9 總結 250

第8章 進階可視化 252

8.1 計算機模拟 253

8.1.1 python的random包 253

8.1.2 scipy的random函數 254

8.1.3 模拟示例 255

8.1.4 信号處理 258

8.1.5 動畫制作 261

8.1.6 利用html5進行可視化 263

8.1.7 julia和python有什麼差別 267

8.1.8 用d3.js進行可視化 267

8.1.9 儀表盤 268

8.2 總結 269

附錄 繼續探索可視化 270