Jupyter Notebook 雖然很方便,但其功能卻捉襟見肘。通過安裝一些插件,能讓你的工作效率提高不少哦!
Jupyter Notebook 是一個很棒的教學、探索和編程環(huán)境,但其功能不足也是出了名的。幸好,有許多方法可以改進這個不錯的工具,如 Jupyter Notebook 擴展工具。
極簡版教程
在命令提示符中運行以下命令:
pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install
啟動 Jupyter Notebook,并導航至新的 Nbextensions 選項卡:
![]()
Jupyter Notebook 擴展選項
選擇你想要的擴展功能,享受它帶來的優(yōu)勢。
(如果你沒看到擴展選項,打開 notebook,單擊「edit」,然后點「nbextensions config」)
在 notebook 的工具欄里可以看到擴展插件:
![]()
較長版教程
如果你覺得上面的教程太簡單,可以看看下面的復雜版。我還列出了我最喜歡的五個擴展插件。
什么是 notebook 擴展插件?
Jupyter Notebook 擴展插件是擴展 notebook 環(huán)境基本功能的簡單插件。它們用 JavaScript 語言編寫,會自動套用代碼格式或者在單元格完成后發(fā)送瀏覽器通知。擴展插件目前僅支持 Jupyter Notebook(不支持 Jupyter Lab)。
為什么要使用擴展插件?Jupyter Notebook 是一個很好用的工具,可用于教學、學習、原型設計、探索和嘗試新方法(甚至可用于 Netflix 的生產(chǎn)過程中)。但是,原版 notebook 功能有限,有時令人挫敗。雖然 Jupyter Notebook 擴展插件沒有完全解決這個問題,但它們確實能讓你的工作變得更輕松。
該用哪些擴展插件?
以下是我最常用的五種 Jupyter Notebook 擴展插件:
1 Table of Contents:更容易導航
如果你在一個 Jupyter Notebook 中同時開啟了十幾個單元格,那你想跟蹤所有單元格就會有些困難。Table of Contents 通過添加 TOC 鏈接解決了這個問題,通過 TOC 鏈接你可以定位到頁面中的任何位置。
![]()
Table of Contents 界面
你還可以使用該擴展插件在 notebook 的頂部添加一個鏈接目錄。這樣會顯示你選擇了哪一個目錄以及哪一個正在運行:
![]()
Notebook 中的 Table of Contents 界面
2 Autopep8:輕輕一擊就能獲得簡潔代碼
我們都應該編寫符合 pep8 標準的代碼,但有時你會陷入分析,難以堅持這種標準。所以當你寫完代碼后,只要單擊這個選項,就可以讓代碼變得簡潔漂亮。
![]()
使用 Autopep8 的效果
這個插件可以稱得上是最好的插件了,僅需點擊一下,就能完成一項耗時又乏味的工作,讓你專注于思考。
3 variable inspector:跟蹤你的工作空間
variable inspector 會顯示你在 notebook 中創(chuàng)建的所有變量的名稱,以及它們的類型、大小、形狀和值。
![]()
variable inspector
這個工具對于從 RStudio 遷移過來的數(shù)據(jù)科學家來說是無價之寶。如果你不想繼續(xù)打印 df.shape 或無法重新調(diào)用 x 的 type,這個工具對你來說也同樣重要。
4 ExecuteTime:顯示單元格的運行時間和耗時
我經(jīng)常不知道某個單元格需要運行多久或者最后一次運行一個打開好幾天的 notebook 是什么時候。ExecuteTime 完美解決這個問題,它會顯示單元格的運行完成時間和所耗時長。
![]()
ExecuteTime 的輸出
的確有更好的計時方法,如 %%timeit,但 ExecuteTime 易于實現(xiàn),且可以覆蓋 notebook 中的所有單元格。
5 隱藏代碼輸入:隱藏過程,展示結果
雖然有些人喜歡看到某項艱苦工作的具體分析,但有些人卻只想看到結果。隱藏所有輸入的插件讓你能夠立即隱藏 notebook 中的所有代碼,只保留結果。
![]()
隱藏所有代碼
下一次如果有人說他們只想看結果,你只要單擊一下就可以了。(不過你還是得經(jīng)常檢查代碼。)
以上是我最常用的五種擴展插件,你還可以嘗試其他擴展插件。先安裝擴展插件,然后打開 notebook 探索吧!
結論
安裝 Jupyter Notebook 擴展插件,花點時間弄清楚哪些有用,然后提高自己的工作效率。雖然這些功能不至于改變你的人生,但它們帶來的益處也是值得的。而且累積起來為你節(jié)約了很多寶貴的開發(fā)時間。
如果你正在寫生產(chǎn)代碼,你可能會更愿意花些時間學習 IDE(我喜歡 VS Code),但 Jupyter Notebook 仍然是數(shù)據(jù)科學工作流程中不可或缺的一部分。如果你要使用這個環(huán)境,就最好把它用到極致,以從中獲得最大的收益。
Jupyter Notebook是python一個非常不錯的開發(fā)環(huán)境,基于Web瀏覽器,界面干凈、整潔、漂亮,使用起來非常不錯,擴展插件也非常豐富,下面我簡單介紹Jupyter Notebook非常實用的5個插件,分別是Collapsible headings(折疊標題),Notify(通知),Codefolding(折疊代碼),tqdm_notebook(執(zhí)行進度條),%debug(代碼調(diào)試),感興趣的朋友可以嘗試一下,實驗環(huán)境win10+python3.6,主要內(nèi)容如下:
1.首先,需要安裝Nbextensions擴展,這個直接在cmd窗口輸入命令“pip install jupyter_nbextensions_configurator jupyter_contrib_nbextensions”就行,如下,安裝的包比較多,需要稍微等待一會兒:
![]()
安裝完成后,我們需要將Nbextensions安裝到Notebook中,所以需要運行命令“jupyter contrib nbextension install --user”和“jupyter nbextensions_configurator enable --user”,如下,很快就能配置成功:
![]()
2.安裝成功后,我們再打開Notebook,就會在功能欄部分添加Nbextensions擴展,如下,這里我們根據(jù)需求,勾選相關功能,如下,Collapsible headings(折疊標題),Notify(通知),Codefolding(折疊代碼)等,這里可以自行設置:
![]()
3.最后我們就可以進行5個插件的測試了,主要測試及截圖如下:
Collapsible headings(折疊標題):依據(jù)標題折疊模塊
![]()
Notify(通知):程序運行完成后,會自動提示(瀏覽器需要開啟Notify功能)
![]()
Codefolding(折疊代碼):代碼過長的話,可自行折疊
![]()
tqdm_notebook(執(zhí)行進度條):顯示程序執(zhí)行的進度條
![]()
%debug(代碼調(diào)試):調(diào)試代碼,自動定位到錯誤位置
![]()
目前,就介紹這5個實用的插件吧??偟膩碚f,整個過程很簡單,這5個插件使用起來也非常不錯,熟悉一下過程,多使用幾遍,很快就能掌握的,當然,Jupyter Notebook還有許多其他插件,像%lsmagic,Execute time extension等,網(wǎng)上也有相關教程和資料,感興趣的話,可以搜一下,希望以上分享的內(nèi)容能對你有所幫助吧,也歡迎大家評論、留言。
