JupyterLab 資料分析必備 IDE 完全指南
Jupyter is not just a tool, it powers the whole innovation of the world.
目錄
-
簡介
-
先嚐為敬
-
介紹
-
型別
-
Notebook 基本功能
-
%matplotlib
-
%timeit
-
%run
-
Cell 型別
-
自自動補全
-
問號檢視詳細⽂文件
-
Magic Code
-
快捷鍵
-
製作 PPT
-
JupyterLab 獨有的實⽤用功能
-
靈活多窗⼝口檢視
-
展開和收縮Cell
-
拖拽 Cell
-
主題
-
支援多種型別⽂檔案
-
外掛
-
Awesome jupyterlab extension list Github Extenion
-
Jupyter Git
-
Jupyterlab-toc
-
Jupyterlab-drawio
-
Jupyterlab_voyager
-
安裝其他語⾔言的 Kernel
-
安裝 R Kernel
-
安裝 Julia Kernel Notebook
-
資源推薦
-
總結
簡介
JupyterLab 是 Jupyter 團隊為 Jupyter 專案開發的下一代基於 Web 的介面。相對於 Jupyter Notebook,它的整合性更強,更靈活並且更易擴充套件。它支援 100種多種語言 [2] ,支援多種文件相互整合,實現了互動式計算的新工作流程 ^1 [3] 。
如果說 Jupyter Notebook 像是一個互動式的筆記本,那麼 Jupyter Lab 更像是一個互動式的 VSCode。另外,JupyterLab 非常強大的一點是,你可以將它部署在雲伺服器,不管是電腦、平板還是手機,都只需一個瀏覽器,即可遠端訪問使用。
使用 JupyterLab,你可以進行資料分析相關的工作,可以進行互動式程式設計,可以學習社群中豐富的 Notebook 資料。
在 GitHub上有超過170萬個公共 Jupyter Notebook [4] 。 例如官方 "A gallery of interesting Jupyter Notebooks" [5] 中列舉了如下主題的各類 Notebook:
• 程式設計與電腦科學 • 統計學,機器學習和資料科學 • 數學,物理,化學,生物學 • 地球科學和地理空間資料 • 語言學與文字挖掘 • 心理學和神經科學 • 機器學習,統計和概率 • 物理,化學和生物學 • 經濟與金融 • 地球科學和地理空間資料
如果你是教授者,你還可以使用它進行教學,例如,可以通過安裝外掛,自動化檢查學生的程式碼結果。你可以閱讀這本書獲取更多建議和資訊: 《Teaching and Learning with Jupyter》 [6] 。
總之,無論你是什麼專業,無論你是做什麼領域,無論你是之前使用過 Jupyter Notebook,還是完全沒有接觸過。從現在開始,使用 JupyterLab 這一得心應手的工具,都可以提升你的工作效率,讓你的體驗更加美好。
Note: 閱讀本文最佳方式是 開啟電腦,實際的動手試一試這些功能 。
先嚐為敬
在安裝之前,你可以直接在 Binder 中嘗試使用 JupyterLab [7] 。
或者檢視一些 Notebooks:https://nbviewer.jupyter.org
安裝
安裝十分簡易,可以通過 conda, pip, 或者 pipenv 進行 安裝 [8] 。
# conda
conda install -c conda-forge jupyterlab
# pip
pip install jupyterlab
# pipenv
pipenv install jupyterlab
pipenv shell
個人推薦使用 Conda 的方式安裝。
啟動
進入到你想要使用 JupyterLab 的目錄下,執行命令:
Jupyter lab
即可啟動。
Token 的用途是確認身份,在你開啟新標籤時需要輸入。
介紹
介面:
其中,左邊欄(command + B)從上到下預設包含:
• 檔案瀏覽器 • 正在執行的 kernel 列表
• 可以批量關閉 kernel
• 命令板 (command/ctrl + shift + C)
• • Cell 工具和已經開啟的標籤頁
型別
JupyterLab 中有如下的 block 型別 [9] :
• Notebooks 筆記本,同Jupyter Notebook • File browser 檔案瀏覽器 • Terminal 終端 • Text Editor 檔案編輯器 • Kernels 核心 • Output 輸出
Notebook 基本功能
JupyterLab 中的 Notebook 和 Jupyter Notebook 中的使用方法一樣。
Cell 型別
每一個 Notebook 就是一個kernel,在其中可以包含多個 cell。
Cell 的型別有三種,分別為: markdown,code 和 row 。
執行 cell 的快捷鍵是:shift + command,大概會你用到最多次的一個快捷鍵。
選擇 cell 之後,點選空白處,按下m鍵,代表轉為markdown cell,y鍵代表轉為code cell,同理r鍵代表轉為row cell。
快捷鍵忘記了也沒有關係,去命令板查一下就行:
自動補全
與大多數本地 IDE 相同,輸入部分程式碼之後按 tab 鍵,即可自動補全。Jupyter Lab 中的自動補全顯示比之前 Jupyter Notebook 的要友好,通過不同的顏色和圖示。顯示出了補全的型別。
問號檢視詳細文件
在函式或變數等後面新增一個問號(?),執行之後,即可檢視對應的詳細文件:
使用兩個問號(??),會顯示詳細原始碼資訊:
Magic Code
IPython的一些特殊命令(不是內置於 Python 本身)被稱為“魔術”命令。魔術命令是以百分號%為字首的任何命令。
%matplotlib
最常用的魔法命令,大概就是 %matplotlib [10] 了。它用於指定 matplotlib 的後端(backend)。通常我們使用:
%matplotlib inline
代表使用 inline作為後端,直接在 Notebook 中內嵌圖片,並且可以省略掉 plt.show() 這一步驟。
%timeit
%timeit 函式檢查任何 Python 語句的執行時間,例如:
run
你可以使用 %run 命令,在Notebook中執行任意的Python檔案。例如:
%run add.py
還有其他一些常用命令,例如 %debug、%load_ext 和 %pwd,完整命令可以 參考頁面 [11] 。
快捷鍵
熟悉使用快捷鍵可以有效的幫我們提升效率,下面表格是一些常用快捷鍵的彙總圖,可以先瀏覽一遍,看看自己經常會用的是什麼:
格來源以及下載地址 [12] :https://blog.ja-ke.tech/2019/01/20/jupyterlab-shortcuts.html
你也可以直接在設定中檢視或修改相應的快捷鍵。
製作 PPT
你還可以直接通過 Notebook 製作 一份網頁版的 PPT,如果你的簡報中包含大量的程式碼,這將是一個不錯的選擇。
操作如下 [13] :
1. 開啟一個 NoteBook,例如 Presentation.ipynb
2. 選擇左側的 Cell Tool 標籤頁 3. 選擇需要展示的 Cell,設定其型別為Slide
4. 轉化並執行 Presentation.ipynb: jupyter nbconvert Presentation.ipynb --to slides --post serve
一個PPT就製作完成啦,顯示效果如下:
此外,如想要回到原來的Jupyter Notebook 也是可以的,只需要將連結後面的 Lab 改為 Tree。
如下:
JupyterLab 獨有的實用功能
靈活多視窗檢視
如果你使用VSCode這樣強大的IDE,Jupyter Notebook 中最不令人滿意的一點,就是它只支援單一的檔案檢視。如果你想要在一個頁面上,同時使用Notebook和終端,或者想要再右側預覽markdown檔案,Notebook都沒有支援。但是,Jupyter Lab 具有靈活的視窗檢視功能,使得上述需求能夠實現。
通過拖拽的方式,可以自由的新增檢視:
可以將輸出的圖片作為單獨視窗檢視:
於 markdown 檔案,可以點選右鍵顯示選單,選擇預覽進行檢視。
另外一個獨特的功能是,你可以執行文字中的程式碼塊。
例如,在markdown文件中,有一段Python程式碼,可以右擊,在選單中選擇新建一個console。點選程式碼片段任意位置之後執行(Shift+Center):
展開和收縮Cell
我們注意到每一個Cell和Output左邊都有一個藍色的線,點選該藍線,可以收攏或者展開,如果輸出內容很多或者我們暫時不關心一些cell的內容時,就可以將其收攏起來。
拖拽 Cell
JupyterLab 非常靈活的第一點是,每一個Cell都是可以拖拽的,你不僅僅可以在單個檔案內進行拖拽,還是在檔案間進行拖拽,它會自從複製cell都另一個檔案中。
主題
JupyterLab 自帶黑白兩種主題,和多種文字高亮主題。在設定選單下即可設定主題。我們也可以更加自己的喜好,更換其他的主題。
支援多種型別檔案
Jupyter Lab 對不同型別的檔案支援也很完善。例如 JSON 檔案,csv 檔案和圖片檔案。
外掛
通 VSCode一樣,JupyterLab 也可以安裝各類外掛(extensions)。安裝合適的外掛,能夠使你的效率提高很多。
JupyterLab 的外掛是 npm 安裝包。所以按照 JupyterLab 的外掛,需要提前按照好 Node.js。
安裝命令:
conda install -c conda-forge nodejs
或者 (Mac Only):
brew install node
完成之後,有兩種方式進行外掛的安裝:
1. 通過開啟 Extension Manager 來安裝和管理外掛 2. 通過執行命令的方式安裝。
如果使用第一種方式,需要手動的開啟 Extension Manager: 在設定中選擇高階設定 (command+逗號 ),再選擇Extension Manager一欄,修改設定為 true:
{
"enabled": true
}
設定成功之後,即可在走側邊欄中看到外掛選項卡,可以檢視已經按照的外掛和探索其他未安裝的外掛。
Awesome jupyterlab extension list
目前,社群中,已經有很多優秀的外掛可以使用,如果你自己一個個的去檢索尋找非常麻煩,所以 我建立了一個目前最完整的實用列表:https://github.com/Yogayu/awesome-jupyterlab-extension。 列表中,包含簡單的介紹,還有外掛的效果展示圖。因此,你能很方便的索引到自己需要的外掛。
在本文中,重點介紹一些常用的外掛。
Github Extenion
安裝命令:
jupyter labextension install @jupyterlab/github
該擴充套件,會在左側區域新增一個 Github 瀏覽器選項卡。你可以瀏覽 GitHub 上的內容,倉庫等等。也可以直接開啟倉庫中 JupyterLab 支援的檔案。如果檔案是 Notebook 型別,你直接直接執行,無需下載到本地,非常的方便。
輸入 GitHub 使用者名稱,即可檢視其下所有倉庫內容。
直接開啟 Notebook 檔案,即可在本地檢視和執行遠端 Notebook:
Jupyter Git
Jupyter Git 是 JupyterLab 中的 Git圖形化管理工具。安裝之後,可以在 git標籤頁,檢視對應的檔案修改情況和版本歷史等資訊。類似於VSCode的Git管理工具。( 是的,我們的 JupyterLab 越來越像 VSCode 了 : )
安裝命令:
jupyter labextension install @jupyterlab/git
pip install jupyterlab-git
jupyter serverextension enable --py jupyterlab_git
使用:
Jupyterlab-toc
顧名思義,該外掛可以自動生成檔案內容目錄。
安裝命令:
jupyter labextension install @jupyterlab/toc
成功之後,即可以點選目錄標籤頁,檢視文件目錄:
Jupyterlab-drawio
Jupyterlab-drawio 是一個在繪圖外掛,它將drawio / mxgraph獨立整合到了 jupyterlab 中。
安裝命令:
jupyter labextension install jupyterlab-drawio
安裝成功之後,在啟動面板即可以選擇 Diagram 型別檔案。
Jupyterlab_voyager
Voyager是一種資料視覺化工具,可以自動和手動的生成圖表。用來檢視資料的基本分佈資訊,十分方便。
安裝命令:
jupyter labextension install jupyterlab_voyager
安裝之後,選擇CSV或者JSON檔案,右擊選擇 open with voyager,即可使用:
安裝其他語言的 Kernel
前面我們說到 JupyterLab 支援多種語言,所以我們只需在 https://github.com/jupyter/jupyter/wiki/Jupyter-kernels 列表上找對對應的語言,安裝其 Kernel 就可以使用。
這裡我們以 R 和 Julia 為例。
安裝 R Kernel
安裝文件: https://irkernel.github.io
1. 安裝 R 下載地址:https://cran.r-project.org/mirrors.html 清華大學映象源:https://mirrors.tuna.tsinghua.edu.cn/CRAN/ 2. 在終端中執行 R, 執行命令:
The packages (' IRkernel)
IRkernel: : installspec ()
1. 或者直接使用 conda install -c r r-essentials 安裝一些必備的包。
安裝 Julia Kernel
安裝文件: https://github.com/JuliaLang/IJulia.jl
1. 安裝 Julia [14] 2. 開啟 Julia 之後,執行命令
using Pkg
Pkg.add("IJulia")
完成之後即可在 JupyterLab 中新建對應語言的Notebook。
如果想要在同一個Notebook中執行不同的語言,可以參考專案: sos-notebook [15] 。
Notebook 資源推薦
• 首推官方資源列表 [16] :https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks
最後,特別推薦一些書籍和課程的 Notebook:
• The Python Data Science HandBook [17] : https://github.com/jakevdp/PythonDataScienceHandbook • Hands-on the Machine Learning with Scikit-Learn and TensorFlow [18] : https://github.com/ageron/handson-ml • the Deep Learning with Python [19] : https://github.com/fchollet/deep-learning-with-python-notebooks • UC Berkeley Data 100 [20] : https://github.com/DS-100/textbook
還有很多很多其他有趣的 Notebook,就等大家自己去探索,或者你可以自己寫一個系列啦。
總結
最後,一起來回顧下本文內容吧:
看完之後,是不是覺得 JupyterLab 可以成為你的主力資料分析 IDE 了呢?
References
[1]
ENGLISH VERSION: http: /data2art.com/jupyterlab-en.html
[2]
100種多種語言: https://github.com/jupyter/jupyter/wiki/Jupyter-kernels
[3]
^1: https://blog.jupyter.org/jupyterlab-is-ready-for-users-5a6f039b8906
[4]
^1: https://blog.jupyter.org/jupyterlab-is-ready-for-users-5a6f039b8906
[5]
"A gallery of interesting Jupyter Notebooks": https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks
[6]
《Teaching and Learning with Jupyter》: https://jupyter4edu.github.io/jupyter-edu-book/
[7]
JupyterLab: https://jupyter.org/try
[8]
安裝: https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html
[9]
block 型別: https://github.com/jupyterlab/jupyterlab-demo/tree/master/slides
[10]
%matplotlib: https://ipython.readthedocs.io/en/stable/interactive/plotting.html
[11]
參考頁面: https://ipython.readthedocs.io/en/stable/interactive/magics.html
[12]
表格來源以及下載地址: https://blog.ja-ke.tech/2019/01/20/jupyterlab-shortcuts.html
[13]
操作如下: https://github.com/jupyterlab/jupyterlab/issues/5018#issuecomment-485842330
[14]
安裝 Julia: https://julialang.org/downloads/
[15]
sos-notebook: https://vatlab.github.io/blog/post/sos-notebook/
[16]
首推官方資源列表: https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks
[17]
The Python Data Science Handbook: https://github.com/jakevdp/PythonDataScienceHandbook
[18]
Hands-on the Machine Learning with Scikit-Learn and TensorFlow: https://github.com/ageron/handson-ml
[19]
the Deep Learning with Python: https://github.com/fchollet/deep-learning-with-python-notebooks
[20]
UC Berkeley Data 100: https://github.com/DS-100/textbook
據說點 「好看」 的人都變好看了 :point_down: