下一代數據科學開發環境 Juypter Lab 應該怎么用?讓我們從擴展工具開始,
如果你是一個用 Python 的數據科學家,那么用 Jupyter Notebook 就是大概率事件了。作為 Jupyter Notebook 的「下一代」web 應用,Jupyter Lab 提供了相比以往更多的便捷功能,其中之一就是擴展。
現在,即使是 Jupyter Lab 開發者團隊也對如此蓬勃發展的第三方擴展工具社區而感到興奮了,在這篇文章中,機器學習工程師、計算機科學博士 Christopher Tao 將為讀者介紹 10 種 Jupter Lab 擴展工具,它們對于典型的數據科學家 / 工程師來說可以大幅提高生產力。
10 大 Jupyter Lab 擴展
目前,大多數在線資源都會使用以下命令來安裝 Jupyter Lab 擴展:
當然,很多人都喜歡使用這種命令。如果你是 VS-Code、Sublime 或 Atom 的用戶,你也許會希望在「管理器」中直接搜索要安裝的內容。Jupyter Lab 卻沒有提供這些功能,
如上圖所示,你可以轉到左側導航欄第 4 個選項卡,即擴展管理器(extension manager)。然后就可以搜索到你需要的擴展,
現在總結一下值得推薦的 10 個 Jupyter Lab 擴展。
JupyterLab 調試器
由于 Jupyter 的交互性,它受到了很多人的喜歡。然而,調試功能是編碼所必須的,例如,我們可以逐步調試 for 循環(for-loop )來查看內部發生了什么。大多數 IDE 工具都支持這種帶有「step over」和「step into」的調試特性,但遺憾的是,Jupyter 中沒有這種特性。
「jupyterlab/debugger」就是這樣一個擴展,讓我們可以補足 Jupyter Lab 中缺少的這個功能,
JupyterLab-TOC
JupyterLab-TOC 項目地址:https:http://github.com/jupyterlab/jupyterlab-toc
notebook 太長?想讓你的 notebook 看起來更漂亮?或者希望 notebook 有一個目錄?「jupyterlab/toc」幫你實現,
圖源: https:http://github.com/jupyterlab/jupyterlab-toc/raw/master/toc.gif
有了這個擴展,基于用標題標記的單元格會自動生成目錄(確保使用標記 ## 來指定你的標題級別)。這也是使用 Jupyter Notebook 的好方法,讓你的工作更有系統性和組織性。
JupyterLab-DrawIO
JupyterLab-DrawIO 項目地址:https:http://github.com/QuantStack/jupyterlab-drawio
Diagram.net(原名 Draw.IO)是繪制圖表的工具,它確實是 MS Visio 完美的開源替代品。借助于 jupyterlab-drawio,我們可以在 Jupyter Lab 上使用該工具,
圖源:https:http://github.com/QuantStack/jupyterlab-drawio/raw/master/drawio.gif
JupyterLab Execution Time
JupyterLab Execution Time 項目地址:https:http://github.com/deshaw/jupyterlab-execute-time
Jupyter Notebook/Lab 的一個驚人特性是它能提供許多有用的魔術命令(magic command),例如我們可以使用「%timeit」測試代碼運行時間。它將運行代碼片段數百或數千次,并得到平均值,以確保給出一個公平和準確的結果,
但有時并不需要這樣精確,我們只不過想知道每個單元運行的時間,在這種情況下,為每個單元使用「%timeit」變得不合適了,
在這種情況下,我們可以使用「jupyterlab-execute-time」。
如上圖所示,「jupyterlab-execute-time」不僅顯示了執行單元的時間間隔,而且還顯示了最后執行的時間。
JupyterLab Spreadsheet
JupyterLab Spreadsheet 項目地址:https:http://github.com/quigleyj97/jupyterlab-spreadsheet
作為一名數據科學家或數據工程師,你不得不與電子表格打交道,但是,Jupyter 本身不支持讀取 Excel 文件,這迫使我們需要打開多個工具,在 Jupyter 編碼以及 Excel 之間不停地切換,
「jupyterlab-spreadsheet」可以很好地解決這類問題,它在 Jupyter Lab 中嵌入了 xls/xlsx 電子表格查看功能,因此我們可以在同一個地方獲得所需的一切,
圖源: https:http://github.com/quigleyj97/jupyterlab-spreadsheet/raw/main/screenshot.png
JupyterLab System Monitor
jupyterlab-system-monitor 項目地址:https:http://github.com/jtpio/jupyterlab-system-monitor
Python 不是一種高效執行的編程語言,這意味著與其他語言相比,它可能會消耗更多的 CPU 和內存資源。Python 的最常見用例之一是數據科學。所以,我們可能想要監控自身系統硬件資源,從而注意到 Python 代碼可能凍結了操作系統,
jupyterlab-topbar-extension 你想要擁有的擴展,它可以在 Jupyter Lab UI 的頂部欄顯示 CPU 和內存使用情況,這樣我們就可以實時監控了。如下動圖所示:
圖源:https:http://github.com/jtpio/jupyterlab-system-monitor/raw/main/doc/screencast.gif
JupyterLab Kite
jupyterlab-kite 項目地址:https:http://github.com/kiteco/jupyterlab-kite
雖然我很喜歡 Jupyter,但它不像其他經典 IDE 工具一樣提供代碼自動補全功能。Jupyter 的代碼自動補全非常受限且速度很慢。
你可能聽說過免費的 AI 賦能代碼補全服務 Kite,它在 Sublime、VS Code 和 PyCharm 等幾乎所有流行的 IDE 工具中都可以使用。通過 jupyterlab-kite (https:http://github.com/kiteco/jupyterlab-kite) 擴展,你也可以在 Jupyter Lab 中使用這一功能,
圖源:https:http://github.com/kiteco/jupyterlab-kite
JupyterLab Variable Inspector
jupyterlab-variableInspector 項目地址:https:http://github.com/lckr/jupyterlab-variableInspector
如果你是從 R studio 或 Matlab 轉向使用 Jupyter Lab 的數據科學家,則可能對這些工具提供的變量檢測器非常熟悉。但遺憾的是,Jupyter Lab 默認不支持這一功能。這時,jupyterlab-variableInspector 擴展可以重新支持該功能,
圖源:https:http://github.com/lckr/jupyterlab-variableInspector/raw/master/early_demo.gif
JupyterLab Matplotlib
Matplotlib/ipympl 項目地址:https:http://github.com/matplotlib/ipympl
如果你是數據科學家,則 Matplotlib 是必須學習(must-learn)的 Python 庫。該庫是 Python 中一個基礎但強大的數據可視化工具。但當我們使用 Jupyter Lab 時,交互特征消失了。
jupyter-matplotlib 擴展可以使 Matplotlib 再次具備交互性,只需要輸入一個魔術命令 %matplotlib widget 來啟動它,則你的精美 3D 圖表就變成交互式的,如下動圖所示:
圖源:https:http://github.com/matplotlib/ipympl/raw/master/matplotlib.gif
JupyterLab Plotly
Plotly 使用指南:https:http://plotly.com/python/getting-started/#jupyterlab-support-python-35
雖然 Matplotlib 是最基礎和強大的數據可視化庫,但在這方面我最喜歡的是 Plotly 庫。該庫封裝了很多常見圖表,我們可以通過數行代碼生成令人驚嘆的圖表,
為使 Jupyter Lab 無縫支持和顯示交互的 Plotly 圖表,用戶需要安裝 jupyterlab-plotly。