Python語言是一種強(qiáng)大而簡潔的編程語言蟀架。據(jù)IEEE Spectrum消息瓣赂,Python在2020年繼續(xù)蟬聯(lián)最受歡迎的編程語言第一名榆骚。對于剛接觸Python的新手來說,配置一個(gè)容易上手又適合自己的開發(fā)環(huán)境無疑是成功掌握這門編程語言的第一步煌集。對于Python IDE的比較和推薦妓肢,各路高手也說法不同,其中被推薦頻率最高的當(dāng)屬Pycharm苫纤、VS Code和Jupyter Notebook了碉钠。
Jupyter Notebook對于Python用戶來說想必也不算太陌生。在深度學(xué)習(xí)領(lǐng)域卷拘,吳恩達(dá)老師在Cousera上發(fā)布的系列課程已經(jīng)成為公認(rèn)的入門必學(xué)內(nèi)容喊废。大家可能也注意到了,在《神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)》的第二節(jié)課中他專門為學(xué)生錄制了一個(gè)使用Jupyter Notebook的快速指南栗弟,并且在很多課程中都通過Jupyter Notebook展示代碼實(shí)現(xiàn)的部分!
這個(gè)像筆記本一樣又能寫文檔又能運(yùn)行代碼的工具是怎么來的呢污筷?在Jupyter項(xiàng)目創(chuàng)立之初,創(chuàng)始人Fernando Pérez希望能夠在同一個(gè)計(jì)算工具平臺(tái)上融合Ju(Julia)乍赫、Py(Python)和R這三種科學(xué)運(yùn)算語言的瓣蛀,并且向伽利略發(fā)現(xiàn)木星(Jupiter)衛(wèi)星時(shí)所用的筆記本致敬,因此創(chuàng)造了Ju-Py-te-R這個(gè)名字雷厂。不過經(jīng)過了五年的發(fā)展惋增,現(xiàn)在Jupyter能夠支持的語言已經(jīng)多達(dá)四十種,成為一個(gè)能夠把軟件代碼改鲫、計(jì)算輸出诈皿、解釋文檔、多媒體資源整合在一起的多功能科學(xué)運(yùn)算平臺(tái)钩杰。
看過了吳恩達(dá)在Jupyter Notebook上的演示后纫塌,你會(huì)發(fā)現(xiàn)它最大的特點(diǎn)便是可以直接在Web瀏覽器上編輯和運(yùn)行诊县,并且允許用戶把代碼寫入獨(dú)立的單元格中單獨(dú)執(zhí)行讲弄。這意味著每個(gè)格子里都可以編寫完馬上執(zhí)行,驗(yàn)證我們的思路是否有問題依痊,并且查看變量的輸出情況是否符合預(yù)期判斷避除。
如果單元格里的代碼有語法錯(cuò)誤,運(yùn)行后在格子下方會(huì)直接顯示錯(cuò)誤提示信息胸嘁,就像下面這樣瓶摆。由于每個(gè)代碼塊都是單獨(dú)運(yùn)行測試的,所以如果查找錯(cuò)誤我們也無需從頭開始執(zhí)行代碼或者手動(dòng)增加斷點(diǎn)進(jìn)行調(diào)試性宏。這個(gè)寫代碼——運(yùn)行——確認(rèn)結(jié)果/修改代碼——在下一個(gè)格子里寫代碼的過程便稱為交互式編程群井。
Jupyter Notebook提供的交互環(huán)境是它的重要功能,也是它在數(shù)據(jù)分析任務(wù)中格外受到歡迎的原因之一毫胜。在Notebook中可以方便地調(diào)用Python的第三方庫书斜,如pandas诬辈、Bokeh等,對數(shù)據(jù)進(jìn)行清理荐吉、統(tǒng)計(jì)和可視化的操作焙糟,并且在單元格中可以分步輸出變量或者繪制圖表等等。
對于數(shù)據(jù)分析工程師自身來說样屠,這樣既可以驗(yàn)證該步驟中的思路是否有問題穿撮,又可以通過輸出的直觀結(jié)果(變量值、圖形等)構(gòu)思后面的步驟怎樣執(zhí)行痪欲,極大地提高了任務(wù)的整體工作效率悦穿。
除了代碼之外,你應(yīng)該也很好奇為什么吳恩達(dá)老師的Notebook看起來像一份包含了標(biāo)題和章節(jié)完整講義吧业踢?這需要?dú)w功于Jupyter Notebook對Markdown語言的支持咧党。Markdown是一種輕量級(jí)標(biāo)記語言,非常簡潔易學(xué)陨亡,常用于技術(shù)文檔的寫作傍衡。基于Markdown語法也衍生出了許多對其功能進(jìn)行擴(kuò)展的語法负蠕,其中Jupyter Notebook使用的是以GitHub為主要風(fēng)格的GFM語法蛙埂。
只需要在工具欄中將單元格的格式指定為Markdown,就可以在格子中輸入注釋遮糖、筆記等一切你想要添加的文本绣的,簡潔的Markdown語法能幫助你更專注于文本內(nèi)容。在內(nèi)容輸入完成后運(yùn)行該單元格欲账,具有格式的文本則會(huì)以html的形式顯示屡江。另外如果想要上傳圖片,直接將圖片拖拽到Markdown格式的單元格內(nèi)即可赛不。
掌握了這些功能惩嘉,你就有機(jī)會(huì)高效地進(jìn)行數(shù)據(jù)分析。同時(shí)踢故,在團(tuán)隊(duì)溝通和教學(xué)展示等環(huán)境下文黎,你可以在Jupyter Notebook的界面上快速地復(fù)現(xiàn)全部分析過程,并且通過文字?jǐn)⑹龅罱稀⒖梢暬瘍?nèi)容耸峭、數(shù)學(xué)公式與代碼的整合來降低理解門檻、提高溝通效率淋纲。
Jupyter Notebook在數(shù)據(jù)分析場景下的卓越優(yōu)勢是Pycharm劳闹、Vim等其他編輯器所無法匹敵的。這種設(shè)計(jì)思想也來自于文式編程的范式,即在代碼中穿插著對代碼邏輯的自然語言解釋和宏片段本涕,從而使編碼者能夠以更貼近人類思維習(xí)慣的方式進(jìn)行工作儡首。這種方式特別適用于科學(xué)計(jì)算和開發(fā)開源軟件等場景。
Python新手想動(dòng)手擁有和吳恩達(dá)同款的生產(chǎn)工具偏友,可以從這本書開始蔬胯。《Jupyter Notebook數(shù)據(jù)分析入門與實(shí)戰(zhàn)》重點(diǎn)介紹了如何使用Jupyter Notebook 進(jìn)行數(shù)據(jù)可視化分析位他,以及自定義Jupyter Notebook氛濒、使用云端Jupyter Notebook等一系列實(shí)用操作。
《Jupyter Notebook數(shù)據(jù)分析入門與實(shí)戰(zhàn)》
這本書對新手的友善度非常高鹅髓,作者先從Jupyter Notebook的安裝和基礎(chǔ)操作講起舞竿。讀者對照本書一邊閱讀一邊動(dòng)手實(shí)踐即可快速入門,Jupyter Notebook中特有的快捷操作和魔術(shù)命令也可以一網(wǎng)打盡窿冯。
掌握了基本的Notebook操作后我們就可以讓代碼跑起來了骗奖。之后作者依次介紹了使用pandas、Matplotlib和Bokeh三個(gè)Python庫進(jìn)行數(shù)據(jù)分析和可視化的方法醒串,并且根據(jù)自己豐富的經(jīng)驗(yàn)歸納了許多常見問題执桌,比如在繪圖時(shí)中文出現(xiàn)亂碼、輸出結(jié)果中子圖邊緣重疊等等芜赌。作者針對這些新手上路時(shí)常令人苦惱的“坑”給出了詳細(xì)的解決方法仰挣,使剛上手的讀者順利“出坑”從而信心大增。
pandas缠沈、Matplotlib和Bokeh都是在數(shù)據(jù)分析中通用程度高膘壶、廣受歡迎的Python庫,其中許多進(jìn)階功能即使是Python和Jupyter Notebook的老用戶也不一定掌握洲愤,比如繪制特殊圖形颓芭、合并不同類型圖形、設(shè)定顏色和顏色映射等等柬赐。跟隨本書熟練使用這些技巧亡问,就可以在數(shù)據(jù)分析報(bào)告中展示“如何優(yōu)雅地使用Jupyter Notebook”了。
對于有志于從事科學(xué)計(jì)算或是數(shù)據(jù)分析的人員來說躺率,Jupyter Notebook是業(yè)界公認(rèn)的不二之選玛界。這本《Jupyter Notebook數(shù)據(jù)分析入門與實(shí)戰(zhàn)》可以成為新手入門之路上的一趟直通車万矾,使你在生產(chǎn)工具上與吳恩達(dá)等領(lǐng)軍人物并肩悼吱。