JupyterLab: 神器Jupyter Notebook的進化版,結合傳統編輯器優勢

前言

近年來,Jupyter Notebook作為一種以交互和良好的佈局方式顯示代碼和結果的工具受到了廣泛的關注。它當然有助於降低編程的門檻,並有助於教學,因為輸入和處理後的輸出一起在瀏覽器中即時呈現,這是許多用戶都非常熟悉的。儘管Jupyter Notebook很受歡迎,但需要編寫的代碼越多,經典的Python IDE或文本編輯器就越顯得方便。如果能有一種工具,能夠取其精華,從而將兩個優勢結合在一起,那不是很好嗎?JupyterLab正在努力實現這一目標,使用戶能夠以靈活、集成和可擴展的方式進行編程。


JupyterLab: 神器Jupyter Notebook的進化版,結合傳統編輯器優勢


進化方向

Jupyter notebook到JupyterLab的進化方向是基於2015年的用戶體驗調查,該調查強調了三個成功因素:

  • 用戶喜歡筆記本的體驗。
  • 用戶希望組合和重新混合不同的Jupyter組分。
  • 用戶需要輕鬆協作的能力。

根據我使用Jupyter notebook的經驗,分析了它的優劣勢

優勢:

  • Jupyter notebook在可視化功能方面特別強大。
  • Jupyter notebook與繪圖的交互非常方便,例如只需使用%matplotlib notebook或ipywidgets。
  • 通過將單元格從代碼更改為Markdown,可以為一段代碼添加漂亮而簡潔的文檔。
  • Jupyter notebook是一個相當整潔的工具,用於數據演示,因為它可以顯示文檔和代碼的輸出。

劣勢:

  • 內置變量檢查器的缺失是經驗豐富的標準IDE用戶在Jupyter notebook中最先缺失的東西之一。
  • 在開發代碼時,Jupyter notebook沒有提供一個方便的文件瀏覽器視圖。因此,讀取和寫入文件變得很笨拙。
  • 需要在終端命令前面加上感嘆號!為了與操作系統的終端交互或使用添加的終端視圖作為附加組件。
  • 打開和研究文件是笨拙的,因為需要先加載文件,然後選擇適當的方式以編程方式顯示它。這比在IDE中雙擊一個jpg文件需要更多的努力。
  • 測試和模塊化處理很難。
  • 缺少了與版本控制系統的集成,儘管有一些有趣的進展,如nbdime,使筆記本的擴散和合並變得更容易。
  • 缺乏方便的可視化調試和概要分析功能,儘管PixieDebugger是很有前途的開發。

讓我們看看目前可用的Jupyterlab版本(0.35.6)的詳細信息,看看從Jupyter notebook遷移到Jupyterlab時會涉及哪些內容。

如何進化

JupyterLab允許您開發複雜的python代碼以及編寫Jupyter Notebook,並且可以輕鬆地將它們連接到同一個內核。我認為這是解決缺點的一個關鍵特性。

在下面的動畫中,您將看到如何在JupyterLab中連接多個Python文件和筆記本。


JupyterLab: 神器Jupyter Notebook的進化版,結合傳統編輯器優勢

在JupyterLab中創建兩個Python文件和一個Jupyter筆記本。接下來,您將看到為每個文件選擇了一個公共內核。


現在看看下面的動畫,它展示了將數據加載到dataframe的簡單性:開發模型的同時使用Jupyter Notebook以無縫方式測試和可視化模型。除了有一個通用的變量檢查器和文件資源管理器之外,所有這些都是可能的。您可以在這裡看到一個簡單的手動函數逼近任務:

JupyterLab: 神器Jupyter Notebook的進化版,結合傳統編輯器優勢

查看csv文件並將其加載到內核中的dataframe中,該內核在打開的文件之間共享。dataframe在變量檢查器中是可見的。首先,給定的x和y向量用藍色表示。然後,通過手動調整文件model.py中的函數fun來迭代地改進用橙色表示的函數逼近器。近似器完全覆蓋了最後給定的數據輸入。因此,只能看到一條橙色的線。

這種方法有效地解耦了提取、建模和可視化,而不必讀寫共享數據幀的文件。這為您的日常工作節省了大量的時間,因為它減少了文件加載中的錯誤風險,而且在項目的早期階段安裝您的EDA和測試要快得多。此外,它還有助於減少代碼行數,以便在數據管道中添加與我一樣多的asserts。

如果您需要在項目的相同上下文中快速地創建一個終端,那麼您只需打開launchpad並創建一個新的終端視圖。這對於檢查模型或算法所需的資源特別有用,如下面的動畫所示:

JupyterLab: 神器Jupyter Notebook的進化版,結合傳統編輯器優勢

JupyterLab-伊恩·羅斯(加州大學伯克利分校),克里斯·科爾伯特在14:30展示瞭如何在JupyterLab內打開一個終端

使用JupyterLab打開數據文件也非常簡單。它是在一個很好的例子,在表格形式的csv文件,並利用惰性加載,因此使它快速,並支持巨大的文件大小。下一個動畫顯示從csv文件打開IRIS數據集:


JupyterLab: 神器Jupyter Notebook的進化版,結合傳統編輯器優勢


您還可以打開圖像文件,只需點擊一下就行。在進行計算機視覺任務就會顯得非常方便。在接下來的動畫中,你可以看到Jupyterlab是如何在最後一塊使用過的面板中呈現哈勃望遠鏡的圖像的:

JupyterLab: 神器Jupyter Notebook的進化版,結合傳統編輯器優勢


此外,您可以使用如下所示的JupyterLab的Git擴展來導航和使用Git:

JupyterLab: 神器Jupyter Notebook的進化版,結合傳統編輯器優勢


總結

Jupyterlab在Jupyter Notebook的基礎上增加了一個完整的IDE,使它變得更加強大。它可以很好地集成到數據科學家的日常工作中,因此它也可以被視為下一代工具。在解耦數據提取、轉換、建模、可視化和測試的簡單性上表現非常強大。


分享到:


相關文章: