如果你找一個熟悉的朋友給你推薦書單,他會傾向于越短越好,因為他想把他知道的最好的推薦給你,讓你少花時間在不重要的事情上。
但如果你在網上看到一個書單,往往會發現都很長長長長長,長到你覺得別人都能日讀40萬字而自己是個天天刷朋友圈的懶癌患者。別擔心,告訴你個小秘密,列書單的人很可能自己也沒讀完書單里的書哦。
所以我想做的是像你的朋友一樣,推薦一份數據分析入門的極簡書單給你,并且幫你深度評測,告訴你什么是最值得讀的、不得不讀的。
你不是吃個火鍋都要看評測嗎?吃火鍋也就花個兩小時吧,但是讀一本書,很可能要花上一個月時間呀,這么大的時間成本,總應該更慎重的做出決定吧。
以下評測會從數據分析崗位必備的三個技能出發:
SQL
統計學
Python 數據分析
最終獲得的結果是相應的3本最推薦的入門書。
一提到 SQL 入門,呼聲最高的是這3本書:
《MySQL必知必會》- Ben Forta[1]
《SQL必知必會》- Ben Forta[2]
《SQL基礎教程》- Mick[3]
首先要搞清楚的一件事,《MySQL必知必會》和《SQL必知必會》是同一個作者 Ben Forta ,《SQL必知必會》的前20章所有內容在《MySQL必知必會》里都有,并且多了10章針對 MySQL 的內容。
這是作者在前言中的解釋:
考慮到在中國 MySQL 還是占主流,評測時選擇了后出版的、內容更豐富的《MySQL必知必會》。
(出版社喜歡把這兩本捆綁在一起賣,真的沒必要都買,80%內容都雷同的)
先放上兩張我悉心整理的全書思維導圖,一眼就可以看出《MySQL必知必會》和《SQL基礎教程》的不同:
《MySQL必知必會》思維導圖[4]
《SQL基礎教程》思維導圖[5]
《MySQL必知必會》這本書講解的非常的全面。
光是最常用的 SELECT語句就花了12章來細細講解。并且整本讀下來會感覺到邏輯是非常清晰的,時刻知道自己學的是知識體系上的哪一個分支。
而《SQL基礎教程》的講述結構并不是按照知識的邏輯,而是按照使用的邏輯。
所以你會看到在思維導圖上會出現同一章的不同節被拆開放到了不同分支的情況,第三章第一節還在講聚合函數,到了第二節就去講 SELECT 語句的 GROUP BY 子句了,因為在作者看來這兩節都是用來解決「聚合與排序」這個使用場景的問題,所以就被歸納到了一起。
和《MySQL必知必會》相比其實是少了很多知識點的,《MySQL必知必會》用了4章去講解的 WHERE 子句,在《SQL基礎教程》中就只有1小節帶過。
這里對比一下最基本的 SELECT 語句這個知識點的講述方式:
《MySQL必知必會》的講述方式幾乎沒什么廢話,直接上案例,需要輸入什么代碼,會輸出什么結果,都用很清晰的方式呈現出來。對于一些細枝末節的細節提示和說明,都采用灰框的方式附在案例后面逐一列出。
《SQL基礎教程》使用了雙色印刷,配了表格圖片去幫助讀者理解。在案例代碼之前,還會多給一個基本語法的示例,講解同一個知識點的篇幅會更長,甚至會有點啰嗦。
對比來看,《MySQL必知必會》的簡明的講述方式更適合喜歡簡單直接的理工直男,《SQL基礎教程》更適合喜歡詳盡說明的文科生。
《MySQL必知必會》在每章的開始會有一個一句話簡介,每章的末尾會有一小段的小結,和整體的行文風格一樣,都是非常簡明扼要的,也方便查閱。
《SQL基礎教程》在每章和每節開始之前會有一個詳盡的說明和學習重點清單,在每章結束時會有幾道練習題。
如果你需要在工作中用到 SQL,還是更推薦《MySQL必知必會》,這本書的知識點覆蓋是更全面的,簡明扼要的風格也方便隨時查閱。
如果你缺乏理工科背景、抽象思維比較弱、注意力已經被碎片化閱讀摧毀,可以先閱讀《SQL基礎教程》,更便于你理解。能上手了之后,再去讀《MySQL必知必會》補全知識體系。
作為統計學的入門,我們以這兩本書來進行深入對比。
《深入淺出統計學》- Dawn Griffiths[6]
《商務與經濟統計學》-詹姆斯·麥克拉夫[7]
統計學的教材可以說是非常多了,并且相似度很高,在這里選取人大出版的這本經典之作《商務與經濟統計學》。
有些 900 多頁的教材屬于進階學習,不算是入門書了。
另外一些社科雞湯類的書也沒有放進來,在我看來,人是無法以繞開知識本身的方式學到知識的。
還是先放兩張全書思維導圖
《深入淺出統計學》思維導圖[8]
《商務與經濟統計學》思維導圖[9]
《深入淺出統計學》涵蓋了基本的統計學概念,默認讀者是零基礎。
甚至連平均數、中位數這種小學六年級教材中的基礎知識都會細細講解。一般來說,一本書越是照顧零基礎,書的知識點深度就會越低,這本也不例外。包括比較重點的描述統計、假設驗證都停留在簡單例子的步驟上。
當然,這種方式的好處是激發讀者興趣,如果一本書是用漫畫或者小說去講解統計學,那知識點深度就更低了。
《商務與經濟統計學》的結構就是按照知識的邏輯來進行講述的。
知識難度會循序漸進的去遞進,先讓你理解最簡單的情景,再逐漸去增加情景的復雜度,比如從單樣本到多樣本,從簡單線性回歸到多元線性回歸。并且所有案例都是基于真實的數據去展開的,這也讓知識點的覆蓋更加全面。
這里用統計學里一個經典的知識點「正態分布」來對比兩本書講述方式的不同:
《深入淺出統計學》用生活中的小事作為案例,一個女生找高個男朋友的例子去引出正態分布的概念,用了很多的插圖去輔助讀者理解,并且每個概念后面會有一個「世上沒有傻問題」的欄目去整理出所有的常見問題和回答,解答初學者心中的疑問。
我還沒見過看不懂《深入淺出》的人呢,這個難度高一學生也能看懂的。有些地方甚至會感覺太簡單而讀不下去。
《商務與經濟統計學》不像一般的教材會寫大段的概念和定義,而是用了大量的例子幫助讀者真正理解,講正態分布這一個概念就用了 9 個例子。并且這些例子都是用的真實的數據和貼近實際工作的場景。
《深入淺出統計學》的「動動腦」欄目通過問題促使讀者思考。「動動筆」欄目通過幾道練習題,讓你動手練習,在下一頁有「動動筆解答」。「要點」欄目概括了這一小節的重點內容。
《商務與經濟統計學》每章有一個章末小結,包括這幾點:
關鍵術語
關鍵符號
關鍵知識點
關鍵公式
所有總結要點都以要點或表格的方式簡練概括。 另外還有本章相應的練習題。
如果你是理工科背景、或者在本科學習過高等數學,可以選擇《商務與經濟統計學》,其中大量的實際案例能讓你更容易補全知識體系、上手實際應用。
如果你的數學基礎較弱,可以選擇《深入淺出統計學》,跟著練一遍,這是人人都能看懂的。
數據分析入門的經典書籍,我們以這兩本口碑最好的來進行對比:
《利用Python進行數據分析第一版》- Wes McKinney[10]
《利用Python進行數據分析第二版》- Wes McKinney[11]
《Python數據科學手冊》- Jake VanderPlas[12]
很多人在推薦這本書時會放第一版的封面圖,在這里旗幟鮮明的反對!
第一版和第二版隔了整整 6 年時間;第一版用的是 Python2.7,第二版用的是 Python3.6;第一版用的是 pandas 0.1.0 版本,第二版用的是 pandas 0.22.0 版本。技術變化這么快,當然要選第二版。
而且兩個版本很好區分的,第二版的耗子頭是朝左的,而不是像第一版那樣朝右的。讀者朋友們,請認清朝左的耗子頭啊!
還是先放兩張全書思維導圖
《利用Python進行數據分析 第二版》思維導圖[13]
《Python數據科學手冊》思維導圖[14]
《利用Python進行數據分析》這本書的層級結構設計的非常漂亮。
我特地用了不同的顏色去體現了他的層次。
大家都知道,這本書的作者 Wes McKinney 就是 pandas 庫的主要作者,但這本書的結構并不是圍繞著 pandas 庫而展開的——不然就直接去看 pandas 文檔好了。這本書的結構超越了某個庫或者某個語言,最核心的部分是以數據分析的工作流展開的,從數據載入、數據清洗、數據規整到數據可視化、數據建模。這種結構對于不熟悉數據分析工作流的讀者是非常有幫助的。
并且這本書的第 2 章、第 3 章包含了數據分析會用到的 Python 基礎語法,對零基礎的讀者挺友好的。
《Python數據科學手冊》這本書的結構非常扁平,就 5 章。
第 1 章著重介紹了作者偏愛的 IPython 的各種用法,然后 NumPy, pandas, matplotlib 各一章,第 5 章是機器學習。整體是以知識邏輯去組織的。
這里選取數據清洗工作中的一個關鍵知識點「過濾缺失值」來進行兩本書的對比。
《利用Python進行數據分析》在講解「過濾缺失值」時會選取最好用的一種方法進行細致講解,然后說明了如何剔除含有缺失值的行、列。以及個性化的配置。
《Python數據科學手冊》在講解「過濾缺失值」時也使用了 dropna() 方法,代碼部分幾乎和《利用Python進行數據分析》一致,文字敘述上對使用場景的敘述會略多一些。
《利用Python進行數據分析》有比較簡略的每章前言和每章小節,比較有特色的是篇幅中會穿插 3 類提示,分別是:提示或建議、一般性說明、警告。另外會有大量表格整理有用的方法。沒有練習題。
《Python數據科學手冊》把上章小結和本章前言合并在一起講。另外每章末尾有一個參考資料合集。也沒有練習題。
《利用Python進行數據分析 第二版》的知識結構更勝一籌。
這本書的作者 Wes McKinney 就是 pandas 庫的主要作者。全書最核心的部分是以數據分析的工作流展開的,從數據載入、數據清洗、數據規整到數據可視化、數據建模。這種結構對于不熟悉數據分析工作流的讀者是非常有幫助的。
下次,如果你有朋友問你,學數據分析應該看哪本書?就直接把這篇測評發給他就可以啦。
References
[1] 《MySQL必知必會》- Ben Forta: https://book.douban.com/subject/3354490/
[2] 《SQL必知必會》- Ben Forta: https://book.douban.com/subject/24250054/
[3] 《SQL基礎教程》- Mick: https://book.douban.com/subject/24841239/
[4] 《MySQL必知必會》思維導圖: https://video.mugglecode.com/MySQLcrash.png
[5] 《SQL基礎教程》思維導圖: https://video.mugglecode.com/SQLmick.png
[6] 《深入淺出統計學》- Dawn Griffiths: https://book.douban.com/subject/7056708/
[7] 《商務與經濟統計學》-詹姆斯·麥克拉夫: https://book.douban.com/subject/26410924/
[8] 《深入淺出統計學》思維導圖: https://video.mugglecode.com/HeadFirstStatistics.png
[9] 《商務與經濟統計學》思維導圖: https://video.mugglecode.com/StatisticsForBE.png
[10] 《利用Python進行數據分析第一版》- Wes McKinney: https://book.douban.com/subject/25779298/
[11] 《利用Python進行數據分析第二版》- Wes McKinney: https://book.douban.com/subject/25779298/
[12] 《Python數據科學手冊》- Jake VanderPlas: https://book.douban.com/subject/27667378/
[13] 《利用Python進行數據分析 第二版》思維導圖: https://video.mugglecode.com/PythonForDA2nd.png
[14] 《Python數據科學手冊》思維導圖: https://video.mugglecode.com/PDS.png