點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)

下一代數(shù)據(jù)科學(xué)開發(fā)環(huán)境 Jupyter Lab 應(yīng)該怎么用?讓我們從擴(kuò)展工具開始。

如果你是一個(gè)用 Python 的數(shù)據(jù)科學(xué)家,那么用 Jupyter Notebook 就是大概率事件了。作為 Jupyter Notebook 的「下一代」web 應(yīng)用,Jupyter Lab 提供了相比以往更多的便捷功能,其中之一就是擴(kuò)展。現(xiàn)在,即使是 Jupyter Lab 開發(fā)者團(tuán)隊(duì)也對(duì)如此蓬勃發(fā)展的第三方擴(kuò)展工具社區(qū)而感到興奮了。在這篇文章中,機(jī)器學(xué)習(xí)工程師、計(jì)算機(jī)科學(xué)博士 Christopher Tao 將為讀者介紹 10 種 Jupter Lab 擴(kuò)展工具,它們對(duì)于典型的數(shù)據(jù)科學(xué)家 / 工程師來說可以大幅提高生產(chǎn)力。
目前,大多數(shù)在線資源都會(huì)使用以下命令來安裝 Jupyter Lab 擴(kuò)展:jupyter labextension install @jupyterlab/...
當(dāng)然,很多人都喜歡使用這種命令。如果你是 VS-Code、Sublime 或 Atom 的用戶,你也許會(huì)希望在「管理器」中直接搜索要安裝的內(nèi)容。Jupyter Lab 卻沒有提供這些功能。
如上圖所示,你可以轉(zhuǎn)到左側(cè)導(dǎo)航欄第 4 個(gè)選項(xiàng)卡,即擴(kuò)展管理器(extension manager)。然后就可以搜索到你需要的擴(kuò)展。
現(xiàn)在總結(jié)一下值得推薦的 10 個(gè) Jupyter Lab 擴(kuò)展。
調(diào)試器指南:https://blog.jupyter.org/a-visual-debugger-for-jupyter-914e61716559由于 Jupyter 的交互性,它受到了很多人的喜歡。然而,調(diào)試功能是編碼所必須的。例如,我們可以逐步調(diào)試 for 循環(huán)(for-loop )來查看內(nèi)部發(fā)生了什么。大多數(shù) IDE 工具都支持這種帶有「step over」和「step into」的調(diào)試特性,但遺憾的是,Jupyter 中沒有這種特性。「jupyterlab/debugger」就是這樣一個(gè)擴(kuò)展,讓我們可以補(bǔ)足 Jupyter Lab 中缺少的這個(gè)功能。
圖源:https://blog.jupyter.org/a-visual-debugger-for-jupyter-914e61716559

JupyterLab-TOC 項(xiàng)目地址:https://github.com/jupyterlab/jupyterlab-tocnotebook 太長?想讓你的 notebook 看起來更漂亮?或者希望 notebook 有一個(gè)目錄?「jupyterlab/toc」幫你實(shí)現(xiàn)。
圖源: https://github.com/jupyterlab/jupyterlab-toc/raw/master/toc.gif有了這個(gè)擴(kuò)展,基于用標(biāo)題標(biāo)記的單元格會(huì)自動(dòng)生成目錄(確保使用標(biāo)記 ## 來指定你的標(biāo)題級(jí)別)。這也是使用 Jupyter Notebook 的好方法,讓你的工作更有系統(tǒng)性和組織性。
JupyterLab-DrawIO 項(xiàng)目地址:https://github.com/QuantStack/jupyterlab-drawioDiagram.net(原名 Draw.IO)是繪制圖表的工具,它確實(shí)是 MS Visio 完美的開源替代品。借助于 jupyterlab-drawio,我們可以在 Jupyter Lab 上使用該工具。
圖源:https://github.com/QuantStack/jupyterlab-drawio/raw/master/drawio.gif
JupyterLab Execution Time
JupyterLab Execution Time 項(xiàng)目地址:https://github.com/deshaw/jupyterlab-execute-timeJupyter Notebook/Lab 的一個(gè)驚人特性是它能提供許多有用的魔術(shù)命令(magic command)。例如我們可以使用「%timeit」測試代碼運(yùn)行時(shí)間。它將運(yùn)行代碼片段數(shù)百或數(shù)千次,并得到平均值,以確保給出一個(gè)公平和準(zhǔn)確的結(jié)果。但有時(shí)并不需要這樣精確。我們只不過想知道每個(gè)單元運(yùn)行的時(shí)間,在這種情況下,為每個(gè)單元使用「%timeit」變得不合適了。在這種情況下,我們可以使用「jupyterlab-execute-time」。
如上圖所示,「jupyterlab-execute-time」不僅顯示了執(zhí)行單元的時(shí)間間隔,而且還顯示了最后執(zhí)行的時(shí)間。
JupyterLab Spreadsheet 項(xiàng)目地址:https://github.com/quigleyj97/jupyterlab-spreadsheet作為一名數(shù)據(jù)科學(xué)家或數(shù)據(jù)工程師,你不得不與電子表格打交道。但是,Jupyter 本身不支持讀取 Excel 文件,這迫使我們需要打開多個(gè)工具,在 Jupyter 編碼以及 Excel 之間不停地切換。「jupyterlab-spreadsheet」可以很好地解決這類問題。它在 Jupyter Lab 中嵌入了 xls/xlsx 電子表格查看功能,因此我們可以在同一個(gè)地方獲得所需的一切。
圖源: https://github.com/quigleyj97/jupyterlab-spreadsheet/raw/main/screenshot.pngJupyterLab System Monitor
jupyterlab-system-monitor 項(xiàng)目地址:https://github.com/jtpio/jupyterlab-system-monitorPython 不是一種高效執(zhí)行的編程語言,這意味著與其他語言相比,它可能會(huì)消耗更多的 CPU 和內(nèi)存資源。Python 的最常見用例之一是數(shù)據(jù)科學(xué)。所以,我們可能想要監(jiān)控自身系統(tǒng)硬件資源,從而注意到 Python 代碼可能凍結(jié)了操作系統(tǒng)。jupyterlab-topbar-extension 你想要擁有的擴(kuò)展,它可以在 Jupyter Lab UI 的頂部欄顯示 CPU 和內(nèi)存使用情況,這樣我們就可以實(shí)時(shí)監(jiān)控了。如下動(dòng)圖所示:
圖源:https://github.com/jtpio/jupyterlab-system-monitor/raw/main/doc/screencast.gif
jupyterlab-kite 項(xiàng)目地址:https://github.com/kiteco/jupyterlab-kite雖然我很喜歡 Jupyter,但它不像其他經(jīng)典 IDE 工具一樣提供代碼自動(dòng)補(bǔ)全功能。Jupyter 的代碼自動(dòng)補(bǔ)全非常受限且速度很慢。你可能聽說過免費(fèi)的 AI 賦能代碼補(bǔ)全服務(wù) Kite,它在 Sublime、VS Code 和 PyCharm 等幾乎所有流行的 IDE 工具中都可以使用。通過 jupyterlab-kite (https://github.com/kiteco/jupyterlab-kite) 擴(kuò)展,你也可以在 Jupyter Lab 中使用這一功能。
圖源:https://github.com/kiteco/jupyterlab-kiteJupyterLab Variable Inspector
jupyterlab-variableInspector 項(xiàng)目地址:https://github.com/lckr/jupyterlab-variableInspector如果你是從 R studio 或 Matlab 轉(zhuǎn)向使用 Jupyter Lab 的數(shù)據(jù)科學(xué)家,則可能對(duì)這些工具提供的變量檢測器非常熟悉。但遺憾的是,Jupyter Lab 默認(rèn)不支持這一功能。這時(shí),jupyterlab-variableInspector 擴(kuò)展可以重新支持該功能。
圖源:https://github.com/lckr/jupyterlab-variableInspector/raw/master/early_demo.gif
Matplotlib/ipympl 項(xiàng)目地址:https://github.com/matplotlib/ipympl如果你是數(shù)據(jù)科學(xué)家,則 Matplotlib 是必須學(xué)習(xí)(must-learn)的 Python 庫。該庫是 Python 中一個(gè)基礎(chǔ)但強(qiáng)大的數(shù)據(jù)可視化工具。但當(dāng)我們使用 Jupyter Lab 時(shí),交互特征消失了。jupyter-matplotlib 擴(kuò)展可以使 Matplotlib 再次具備交互性。只需要輸入一個(gè)魔術(shù)命令 %matplotlib widget 來啟動(dòng)它,則你的精美 3D 圖表就變成交互式的。如下動(dòng)圖所示:

圖源:https://github.com/matplotlib/ipympl/raw/master/matplotlib.gif
Plotly 使用指南:https://plotly.com/python/getting-started/#jupyterlab-support-python-35雖然 Matplotlib 是最基礎(chǔ)和強(qiáng)大的數(shù)據(jù)可視化庫,但在這方面我最喜歡的是 Plotly 庫。該庫封裝了很多常見圖表,我們可以通過數(shù)行代碼生成令人驚嘆的圖表。為使 Jupyter Lab 無縫支持和顯示交互的 Plotly 圖表,用戶需要安裝 jupyterlab-plotly。原文鏈接:https://towardsdatascience.com/10-jupyter-lab-extensions-to-boost-your-productivity-4b3800b7ca2a下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺。下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請(qǐng)按照格式備注,否則不予通過。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~