JupyterLab 資料分析必備 IDE 完全指南

語言: CN / TW / HK
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: