需要處理大量資料的人必備的案頭書
對於許多研究人員來說,Python是首選的工具,因為它擁有豐富的儲存、操作、以及洞察資料的程式庫。這些資源散布在資料科學的領域中,但藉由本書,你可以一口氣取得這些資源,包括Ipython、NumPy、Pandas、Matplotlib、Scikit-Learn等等。
對於需要處理大量資料的人而言,這是一本非常有價值的案頭書,可以有效率地處理每天面對的問題,像是操作、轉換,以及清理資料、視覺化不同形式的資料,建立統計學或機器學習的模型等等。
藉由這本手冊,你將可以學習到如何使用:
.IPython和Jupyter:提供資料科學家使用的Python計算環境。
.NumPy:在Python中進行高效儲存以及操作密集資料陣列的ndarrys。
.Pandas:在Python中進行對於標籤式/欄位式的資料高效率儲存與操作。
.Matplotlib:在Python中進行彈性範圍的資料視覺化的能力。
.Scikit-Learn:提供機器學習演算法以及簡潔的Python實作。
作者簡介:
Jake VanderPlas,Python科學端的長期使用者以及開發者,目前是一位在Washington大學跨學科資料科學研究者。他主導自己的天文學研究,而且也會為來自於廣泛領域的本地科學家提供建議以及接受諮詢。
各界推薦
名人推薦:
”如果你想要藉由Python學習資料科學,本書是一個極佳的起點。我用來教授電腦科學以及統計學獲得極大的成功。Jake在這些開放源碼的工具上的基礎上更進一步;使用了清晰的語言以及易懂的解釋闡述資料科學基礎的概念、範式、以及抽象的內容。“ -- Brian Granger, Jupyter計畫聯合創始人
名人推薦:”如果你想要藉由Python學習資料科學,本書是一個極佳的起點。我用來教授電腦科學以及統計學獲得極大的成功。Jake在這些開放源碼的工具上的基礎上更進一步;使用了清晰的語言以及易懂的解釋闡述資料科學基礎的概念、範式、以及抽象的內容。“ -- Brian Granger, Jupyter計畫聯合創始人
作者序
這是一本有關於使用Python 來從事資料科學工作的書。首先要面對的問題是:「何謂『資料科學』?」這是一個很難明確定義的詞,尤其是在這個詞已經被濫用的情況下。有些人認為這個名詞是多餘的(畢竟,哪有不包含資料的科學呢),或是個可以為自己履歷加料的流行語,好吸引那些特別喜歡科技的HR目光。
在我心裡的想法是,這些解釋都少了一些重要的東西。資料科學,儘管是個流行用語,或許是我們在跨學科的技能集合中所擁有的最佳標籤,這些技能在工業及學界的許多應用中越來越重要。「跨學科」這個字是關鍵:在我的心目中,資料科學現存的最佳定義是Dew Conway 畫的Data Science Venn Diagram,這張圖於2010年9月首次出現在其部落格中。雖然這些圖中某些交集的標籤內容並沒有那麼正式,但這張圖抓住了一些我認為人們提到「資料科學」時的重點:它是一個跨學科的主題。
資料科學由三個獨特和重疊的領域所組成:統計學家知道如何去塑模和整合資料集(那些成長到非常大的資料);電腦科學家知道如何設計和使用演算法去有效率地儲存、處理和視覺化這些資料:以及領域專家,那些我們認為在某些傳統項目中有著良好的訓練,可以提出適合的問題以及得到對的答案的人。
有鑑於此,我建議讀者不要將資料科學視為一個需要從頭學習的全新領域知識,而是讓你在目前的專業領域中成為專家的全新技能集。無論你是要報導選舉結果、預測股票收益、最佳化線上廣告的點擊率、辨識在顯微照片下的微生物、在天文領域尋找新的星體、或是在任何領域中用到資料,本書的目標,就是可以提供一個你在自己的專業領域中提出一些新問題並找到解答的能力。
這本書適合誰?
我在華盛頓大學和許多技術研討會和見面會的教學場合中,最常被問到的問題是:「我該如何學習Python?」提問的人包括具有技術背景的學生、開發者和研究者,通常都已經具備編寫程式碼、使用計算及數值工具的經驗。其中大部份的人不想要精通Python,只是把它當成一個用來處理手邊的大量資料和計算科學的工具。雖然網路上有大量的影音檔案、部落格貼文及教學內容,但我對於要給這個問題一個好答案仍然感到挫折,這給了我出版本書的動機。
這並不是一本Python入門書。訴求的讀者對象是對Python已經有一定程度的瞭解,知道如何定義函式、設定變數、呼叫物件方法、控制程式的流程等等。本書將幫助Python的使用者了解如何運用Python的資料科學堆疊端,例如IPython、NumPy、Pandas、Matplotlib、Scikit-Learn等程式庫及相關的工具,來進行有效地儲存、操作、以及進一步洞察資料。
這是一本有關於使用Python 來從事資料科學工作的書。首先要面對的問題是:「何謂『資料科學』?」這是一個很難明確定義的詞,尤其是在這個詞已經被濫用的情況下。有些人認為這個名詞是多餘的(畢竟,哪有不包含資料的科學呢),或是個可以為自己履歷加料的流行語,好吸引那些特別喜歡科技的HR目光。
在我心裡的想法是,這些解釋都少了一些重要的東西。資料科學,儘管是個流行用語,或許是我們在跨學科的技能集合中所擁有的最佳標籤,這些技能在工業及學界的許多應用中越來越重要。「跨學科」這個字是關鍵:在我的心目中,資料科學現存的...
目錄
第一章 IPython:更好用的Python
Shell還是Notebook
IPython 的求助與說明文件
在IPython Shell中的快捷鍵
IPython的Magic命令
輸入和輸出的歷程
IPython和Shell命令
和Shell相關的Magic命令
錯誤以及除錯
剖析和測定程式碼的時間
第二章 NumPy介紹
瞭解Python的資料型態
NumPy陣列基礎
NumPy 陣列屬性
陣列索引:存取單一個陣列元素
在NumPy陣列中的計算:Universal Functions
聚合操作:Min、Max、以及兩者間的所有事
在陣列上的計算:Broadcasting
比較、遮罩以及布林邏輯
Fancy索引
排序陣列
結構化的資料:NumPy的結構化陣列
更多進階的複合型態
第三章 使用Pandas操作資料
安裝並使用Pandas
Pandas 物件的介紹
資料的索引和選擇
在Pandas中操作資料
處理缺失資料
階層式索引
資料集的合併:Concat 和Append
合併資料集:Merge 以及Join
聚合計算與分組
樞紐分析表
向量化字串操作
使用時間系列
高效率Pandas:eval() 以及query()
第四章 使用Matplotlib進行視覺化
通用的Matplotlib技巧
買一送一的介面
簡單的線條圖形
簡單的散佈圖
視覺化誤差
密度圖和等高線圖
直方圖、分箱法及密度
自訂圖表的圖例
自訂色彩條
多重子圖表
文字和註解
自訂刻度
客製化Matplotlib:系統配置和樣式表
在Matplotlib中的三維繪圖法
Basemap的地理資料
使用Seaborn進行視覺化
第五章 機器學習
什麼是機器學習?
Scikit-Learn簡介
超參數以及模型驗證
特徵工程
深入探究:Naive Bayes Classification
深入探究:線性迴歸(Linear Regression)
深入探究:Support Vector Machines
深入探究:決策樹(Decision Tree)和隨機森林(Random Forest)
深入探究:主成份分析(Principal Component Analysis)
深入探究:流形學習(Manifold Learning)
深入探究:k- 平均集群法
深入探究:高斯混合模型(Gaussian Mixture Models)
深入探究:核密度估計(Kernel Density Estimation)
應用:臉部辨識的管線
第一章 IPython:更好用的Python
Shell還是Notebook
IPython 的求助與說明文件
在IPython Shell中的快捷鍵
IPython的Magic命令
輸入和輸出的歷程
IPython和Shell命令
和Shell相關的Magic命令
錯誤以及除錯
剖析和測定程式碼的時間
第二章 NumPy介紹
瞭解Python的資料型態
NumPy陣列基礎
NumPy 陣列屬性
陣列索引:存取單一個陣列元素
在NumPy陣列中的計算:Universal Functions
聚合操作:Min、Max、以及兩者間的所有事
在陣列上的計算:Broadcasting
比較、遮罩以及布林邏輯
Fancy索引
排序陣...