必備 | 提升效率的數(shù)據(jù)分析工具,吳恩達都在用

Python語言是一種強大而簡潔的編程語言。據(jù)IEEE Spectrum消息,Python在2020年繼續(xù)蟬聯(lián)最受歡迎的編程語言第一名。對于剛接觸Python的新手來說,配置一個容易上手又適合自己的開發(fā)環(huán)境無疑是成功掌握這門編程語言的第一步。對于Python IDE的比較和推薦,各路高手也說法不同,其中被推薦頻率最高的當(dāng)屬Pycharm、VS Code和Jupyter Notebook了。
Jupyter Notebook對于Python用戶來說想必也不算太陌生。在深度學(xué)習(xí)領(lǐng)域,吳恩達老師在Cousera上發(fā)布的系列課程已經(jīng)成為公認的入門必學(xué)內(nèi)容。大家可能也注意到了,在《神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)》的第二節(jié)課中他專門為學(xué)生錄制了一個使用Jupyter Notebook的快速指南,并且在很多課程中都通過JupyterNotebook展示代碼實現(xiàn)的部分。


這個像筆記本一樣又能寫文檔又能運行代碼的工具是怎么來的呢?在Jupyter項目創(chuàng)立之初,創(chuàng)始人Fernando Pérez希望能夠在同一個計算工具平臺上融合Ju(Julia)、Py(Python)和R這三種科學(xué)運算語言的,并且向伽利略發(fā)現(xiàn)木星(Jupiter)衛(wèi)星時所用的筆記本致敬,因此創(chuàng)造了Ju-Py-te-R這個名字。不過經(jīng)過了五年的發(fā)展,現(xiàn)在Jupyter能夠支持的語言已經(jīng)多達四十種,成為一個能夠把軟件代碼、計算輸出、解釋文檔、多媒體資源整合在一起的多功能科學(xué)運算平臺。

看過了吳恩達在Jupyter Notebook上的演示后,你會發(fā)現(xiàn)它最大的特點便是可以直接在Web瀏覽器上編輯和運行,并且允許用戶把代碼寫入獨立的單元格中單獨執(zhí)行。這意味著每個格子里都可以編寫完馬上執(zhí)行,驗證我們的思路是否有問題,并且查看變量的輸出情況是否符合預(yù)期判斷。

如果單元格里的代碼有語法錯誤,運行后在格子下方會直接顯示錯誤提示信息,就像下面這樣。由于每個代碼塊都是單獨運行測試的,所以如果查找錯誤我們也無需從頭開始執(zhí)行代碼或者手動增加斷點進行調(diào)試。這個寫代碼——運行——確認結(jié)果/修改代碼——在下一個格子里寫代碼的過程便稱為交互式編程。

Jupyter Notebook提供的交互環(huán)境是它的重要功能,也是它在數(shù)據(jù)分析任務(wù)中格外受到歡迎的原因之一。在Notebook中可以方便地調(diào)用Python的第三方庫,如pandas、Bokeh等,對數(shù)據(jù)進行清理、統(tǒng)計和可視化的操作,并且在單元格中可以分步輸出變量或者繪制圖表等等。
對于數(shù)據(jù)分析工程師自身來說,這樣既可以驗證該步驟中的思路是否有問題,又可以通過輸出的直觀結(jié)果(變量值、圖形等)構(gòu)思后面的步驟怎樣執(zhí)行,極大地提高了任務(wù)的整體工作效率。

?
除了代碼之外,你應(yīng)該也很好奇為什么吳恩達老師的Notebook看起來像一份包含了標(biāo)題和章節(jié)完整講義吧?這需要歸功于JupyterNotebook對Markdown語言的支持。Markdown是一種輕量級標(biāo)記語言,非常簡潔易學(xué),常用于技術(shù)文檔的寫作?;贛arkdown語法也衍生出了許多對其功能進行擴展的語法,其中JupyterNotebook使用的是以GitHub為主要風(fēng)格的GFM語法。

只需要在工具欄中將單元格的格式指定為Markdown,就可以在格子中輸入注釋、筆記等一切你想要添加的文本,簡潔的Markdown語法能幫助你更專注于文本內(nèi)容。在內(nèi)容輸入完成后運行該單元格,具有格式的文本則會以html的形式顯示。另外如果想要上傳圖片,直接將圖片拖拽到Markdown格式的單元格內(nèi)即可。


掌握了這些功能,你就有機會高效地進行數(shù)據(jù)分析。同時,在團隊溝通和教學(xué)展示等環(huán)境下,你可以在Jupyter Notebook的界面上快速地復(fù)現(xiàn)全部分析過程,并且通過文字敘述、可視化內(nèi)容、數(shù)學(xué)公式與代碼的整合來降低理解門檻、提高溝通效率。
Jupyter Notebook在數(shù)據(jù)分析場景下的卓越優(yōu)勢是Pycharm、Vim等其他編輯器所無法匹敵的。這種設(shè)計思想也來自于文式編程的范式,即在代碼中穿插著對代碼邏輯的自然語言解釋和宏片段,從而使編碼者能夠以更貼近人類思維習(xí)慣的方式進行工作。這種方式特別適用于科學(xué)計算和開發(fā)開源軟件等場景。
Python新手想動手擁有和吳恩達同款的生產(chǎn)工具,可以從這本書開始。《Jupyter Notebook數(shù)據(jù)分析入門與實戰(zhàn)》重點介紹了如何使用JupyterNotebook 進行數(shù)據(jù)可視化分析,以及自定義Jupyter Notebook、使用云端Jupyter Notebook等一系列實用操作。

這本書對新手的友善度非常高,作者先從Jupyter Notebook的安裝和基礎(chǔ)操作講起。讀者對照本書一邊閱讀一邊動手實踐即可快速入門,Jupyter Notebook中特有的快捷操作和魔術(shù)命令也可以一網(wǎng)打盡。

掌握了基本的Notebook操作后我們就可以讓代碼跑起來了。之后作者依次介紹了使用pandas、Matplotlib和Bokeh三個Python庫進行數(shù)據(jù)分析和可視化的方法,并且根據(jù)自己豐富的經(jīng)驗歸納了許多常見問題,比如在繪圖時中文出現(xiàn)亂碼、輸出結(jié)果中子圖邊緣重疊等等。作者針對這些新手上路時常令人苦惱的“坑”給出了詳細的解決方法,使剛上手的讀者順利“出坑”從而信心大增。

pandas、Matplotlib和Bokeh都是在數(shù)據(jù)分析中通用程度高、廣受歡迎的Python庫,其中許多進階功能即使是Python和Jupyter Notebook的老用戶也不一定掌握,比如繪制特殊圖形、合并不同類型圖形、設(shè)定顏色和顏色映射等等。跟隨本書熟練使用這些技巧,就可以在數(shù)據(jù)分析報告中展示“如何優(yōu)雅地使用Jupyter Notebook”了。


對于有志于從事科學(xué)計算或是數(shù)據(jù)分析的人員來說,Jupyter Notebook是業(yè)界公認的不二之選。這本《Jupyter Notebook數(shù)據(jù)分析入門與實戰(zhàn)》可以成為新手入門之路上的一趟直通車,使你在生產(chǎn)工具上與吳恩達等領(lǐng)軍人物并肩。
