Jupyter Lab 的十個(gè)有用技巧
JupyterLab是 Jupyter Notebook「新」界面。它包含了jupyter notebook的所有功能,并升級(jí)增加了很多功能。它最大的更新是模塊化的界面,可以在同一個(gè)窗口以標(biāo)簽的形式同時(shí)打開好幾個(gè)文檔,同時(shí)插件管理非常強(qiáng)大,使用起來要比jupyter notebook高大尚許多。
1、拼寫檢查
拼寫檢查可以讓我們的文檔保持更高的質(zhì)量,默認(rèn)情況下,拼錯(cuò)的單詞會(huì)以紅色背景突出顯示,但是這里我將其設(shè)置為下劃線。
使用這個(gè)功能只要安裝以下的插件:
2、代碼格式化
這里需要安裝幾個(gè)包,一個(gè)是提供格式化功能,另外一個(gè)是我們的jupyterlab插件
通過Jupyter Lab Code Formatter擴(kuò)展可以獲得很多的格式化功能
安裝完成后,頂部會(huì)出現(xiàn)一個(gè)奇怪但看起來很酷的圖標(biāo)。如果您不想使用該按鈕,您可以將擴(kuò)展配置為保存時(shí)自動(dòng)格式化(在 Advanced Settings Editor 設(shè)置)。
3、多行選擇
這個(gè)功能與jupyter notebook一樣,點(diǎn)擊時(shí)按住Ctrl鍵可以多選。只能在單個(gè)單元格內(nèi)進(jìn)行多選。
4、添加虛擬環(huán)境
使用以下命令將虛擬環(huán)境作為內(nèi)核添加到Jupyter Lab,這樣就可以作為一個(gè)選項(xiàng)出現(xiàn)在Launcher或內(nèi)核列表的右上角:
注意:以上代碼需要在你需要添加的虛擬環(huán)境使用,而不是jupyter lab的環(huán)境。
5、像運(yùn)行腳本一樣運(yùn)行notebook
Jupyter notebook用于探索和互動(dòng)輸出。但是使用jupyter run命令,可以像Python腳本一樣順序執(zhí)行每個(gè)筆記本單元格。
該命令會(huì)以JSON的形式返回每個(gè)單元格的輸出,所以如果有大量文本輸出可能會(huì)卡頓。我們可以將不同的超參數(shù)保存到單個(gè)筆記本中然后運(yùn)行,這樣可以保存運(yùn)行記錄。
6、分割編輯器窗口
Jupyter Lab的窗口以標(biāo)簽的形式展示,我們一次可以打開好幾個(gè)編輯窗口,并且可以拖動(dòng)窗口,將編輯器窗口分割,演示如下:
7、隨時(shí)查看文檔
有三種方法可以直接從編輯器中查找?guī)缀跞魏魏瘮?shù)或魔法命令的文檔。
第一個(gè)是使用Shift + Tab鍵盤快捷鍵(默認(rèn)),它會(huì)顯示一個(gè)彈出窗口,其中包含光標(biāo)所在的函數(shù)或類的文檔:
如果不喜歡點(diǎn)擊其他地方后彈出窗口消失,還可以使用上下文幫助,它可以通過幫助菜單或Ctrl + I鍵盤快捷鍵訪問。上下文幫助顯示游標(biāo)指向的函數(shù)或類的實(shí)時(shí)文檔。
最后,一種方法可以簡(jiǎn)單地在函數(shù)或類名的末尾添加一個(gè)問號(hào)(不帶括號(hào)):
8、終端命令和Python代碼混合開發(fā)
這個(gè)功能看起來有點(diǎn)古怪,但它非常有用。使用感嘆號(hào)(!),可以在代碼單元格中運(yùn)行任何終端命令。
還可以將這些命令的輸出存儲(chǔ)在Python變量中。例如使用!pwd的輸出將當(dāng)前工作目錄存儲(chǔ)在path變量中:
這里有一個(gè)更實(shí)際的例子。假設(shè)有一個(gè)數(shù)據(jù)文件夾,其中包含用于模型訓(xùn)練的圖像。所有圖像都根據(jù)它們的類被分類到目錄中。
問題是有太多的圖像類別,我們無法手動(dòng)計(jì)數(shù)。需要使用一個(gè)快速的方法來計(jì)算data/raw/train內(nèi)部的目錄數(shù)量,并將其輸出存儲(chǔ)在number_of_classes中:
一句shell命令就能解決問題,這樣就不用我們寫python的目錄遍歷代碼了
9、通知執(zhí)行
即使你不是谷歌Colab的用戶,你也一定會(huì)喜歡它的單元格執(zhí)行通知。使用winsound內(nèi)置Python庫(kù),可以在Jupyter Lab上模仿該功能:
10、自動(dòng)重載修改后的Python腳本
將腳本與筆記本混合使用是非常不好的,但是有時(shí)候我們的確需要這樣做,如果我們更新了導(dǎo)入的腳本,除非重新啟動(dòng)內(nèi)核,否則Jupyter將不會(huì)自動(dòng)檢測(cè)到更改,這會(huì)產(chǎn)生很多問題。所以我們可以使用autoreload 命令來避免這個(gè)問題:
上述代碼將每秒鐘檢測(cè)并刷新一次內(nèi)核。它不僅會(huì)檢測(cè)腳本更改,還會(huì)檢測(cè)對(duì)所有文件的更改。
對(duì)于python腳本,我們還可以使用pycat 命令來以語法高亮的形式顯示Python腳本的內(nèi)容:
對(duì)于其他文件格式,也可以使用cat命令,這是linux的標(biāo)準(zhǔn)命令
總結(jié)
本文介紹了幾個(gè)常用且好用的jupyter技巧,如果你還想了解個(gè)更多的魔法命令,可以運(yùn)行l(wèi)smagic。它將列出所有內(nèi)聯(lián)和單元格魔術(shù)命令。