再見 Jupyter Notebook, DataSpell 起飛!
如果 JupyterLab 和 PyCharm 有一個孩子,那么他一定是DataSpell,一個面向專業數據科學家的專業 IDE。
雖然 Pycharm 這樣的 IDE 非常強大,但它并不適用于數據科學,因此大部分數據科學家都會選擇使用富有交互性的 JupyterLab 或 Jupyter Notebook 作為常用 IDE。但在調試完整項目時又不得不切換回具有專業環境的PyCharm。
這樣屬實有點麻煩,直到我發現了 DataSpell。
什么是DataSpell?
Dataspell是專為數據科學家打造的集成開發環境(IDE)。它由Jetbrains(IntelliJ Idea 和 PyCharm 背后的公司)開發,因此無需進一步介紹。
DataSpell 具有我們期望從 Jupyter 中獲得的一些典型功能,例如命令模式、編輯器模式、單元格導航、筆記本快捷方式和交互式輸出。
也就是說,對于專業數據科學家來說,這是一個更強大的專業 IDE。這就是為什么我更喜歡 DataSpell 而不是 Jupyter Notebook(和 Pycharm)的原因之一了。
以下是 IDE 提供的內容:
- 原生筆記本體驗——如果你使用過 Jupyter,將會有賓至如歸的感覺。
- 智能編碼輔助——就像 Jupyter 和 PyCharm 生了一個孩子一樣。
- Markdown 和 JavaScript — 根據需要設置筆記本的樣式并嵌入數據可視化。
- 交互式 shell — REPL 控制臺 + 語法檢查。
SQL 數據庫支持——連接到數據庫、直觀地檢查數據、導入/導出數據等。
一睹為快
如果你使用過PyCharm,那么這個外觀和感覺都會很熟悉。
創建第一個Notebook
該過程幾乎與任何其他 Jetbrains 產品相同。單擊根目錄并轉到New — Jupyter Notebook
并命名為 first_notebook.ipynb
創建筆記本時,可能已經看到創建 R 腳本和Julia文件的選項。其實Dataspell 不僅支持Python ,還同時支持 R 和 Julia。
使用基本的 Python 數據科學庫測試
Numpy 數組和 Pandas DataFrame
與 DataFrame 的良好交互性
當將 DataFrame 顯示為輸出時,與其他 Notebook 編輯器不同,當 DataFrame 很大時,DataSpell 可以顯示整個 DataFrame 而不會屏蔽某些數據。當 DataFrame 較大時,DataSpell 會自動添加一個滾動條,讓你可以滾動查看整個數據集。
同時,可以通過單擊列名輕松對數據進行排序,這將使用該列按升序或降序對 DataFrame 進行排序(如果單擊兩次)。
如果要在單個框架中查看更多數據,可以選擇在單獨的選項卡中打開 DataFrame。
Matplotlib 繪圖
出色的智能編碼輔助
Jupyter Notebook 的一個缺點是它的編碼輔助,雖然可以打開擴展 “hinterland”啟用自動補全,但效果不佳。
如果按下“tab”按鈕,它有時會再次寫入整個變量名稱,而不是僅完成名稱的其余部分,有時甚至會自動完成單詞,甚至無須按 Enter。
DataSpell 的編碼輔助與 Pycharm 的一樣智能,有智能代碼完成、錯誤檢查和更多可用的東西。
Markdown 支持
除此之外,DataSpell 還支持 Markdown,這意味著我們的腳本仍將具有帶有 h1、h2、h3 標題、純文本、編號列表、項目符號等的“筆記本風格”(雖然尚不支持 LaTeX語法) 。將鼠標懸停在一個單元格上方,然后單擊Add Markdown Cell:
另一種方法是單擊code下拉菜單并將單元格類型切換為 Markdown。
這里有一些 Markdown 代碼供嘗試:
這是運行單元格時的外觀:
出色的可視化輸出
Jupyter Notebook 的一項很酷的功能是無需任何額外安裝即可輸出可視化效果。而 Pycharm 則不然,但 DataSpell 可以與Jupyter媲美!
只需要打開.ipynb包含創建可視化的代碼的文件,你會發現所有可視化都會漂漂亮亮地顯示出來。
甚至支持交互式可視化
你猜怎么著?Dataspell 與 Plotly、Bokeh、Altair 和 ipywidgets 等交互式可視化庫配合得很好。
如下交互式可視化效果:
Pycharm 等完整 IDE 的一些很酷的特性(而 Jupyter Notebook 缺乏)是版本控制、輕松的終端訪問和數據庫集成。
版本控制
版本控制幫助我們跟蹤和管理對軟件代碼的更改。你可能用來管理源代碼更改的流行版本控制系統是 Github。
使用 DataSpell,你可以克隆 Git 項目、提交和推送更改、使用分支等等!
終端
DataSpell 有一個內置終端,支持操作系統上可用的命令。終端在你的腳本下方可用,因此無需打開第二個窗口來再次使用終端!
虛擬環境管理
當您使用 Python 一段時間后,你應該已經意識到為每個項目設置虛擬環境的重要性。DataSpell 通過提供設置頁面,可以輕松為任何數據科學項目配置虛擬環境。此外,它具有對許多數據科學家常用的 Conda 環境的內置支持。
數據庫工具
如果我們每天都在使用 MongoDB、MySQL 和 Oracle 等數據庫,那么我有個好消息!DataSpell 可以連接到數據庫,因此我們可以直接從 IDE 訪問和查詢數據庫。
以下是支持的數據庫工具的完整列表:
這里介紹如何使用sqlite3包建立連接、創建數據庫和表:
現在可以像往常一樣插入數據:
Dataspell 的特別之處在于無需離開 IDE 或編寫不必要的查詢即可探索數據庫的選項。只需雙擊數據庫,就會打開一個新的側窗口,然后可以單擊任何感興趣的表格,以在單獨的選項卡中對其進行探索:
其實該功能在PyCharm 的專業版中也能找到,因此并不能算作DataSpell獨有的功能。
調試器
Jupyter Notebook 缺少可以幫助我們輕松檢測和刪除代碼中的錯誤的調試器。
幸運的是,DataSpell 有一個同時支持 Jupyter notebooks 和 Python 腳本的調試器。因此我們可以直接Debug,如在斷點處停止、管理變量等等。
插件
我喜歡 Pycharm 和 DataSpell 的一點是當屬其插件,他們有很多出色的插件可供我們下載。
其實我們為 Pycharm 安裝的大多數插件也可均適用于 DataSpell。例如,使用 Rainbow CSV 為使用 Pycharm 打開的 CSV 文件中的列設置不同的顏色。
雖然介紹了這么多關于Dataspell的優點,但用不用還是取決于你的實際需求,如果你的編碼工作比數據科學多,那么 PyCharm 可能是更好的選擇。另一方面,如果你所做的大部分工作都是純粹的數據科學,那么 Dataspell 就是你的一個較好的選擇。而相對于免費Jupyter,收費的Dataspell也是是阻止你使用的一大原因。
歸根結底,永遠留在我們身邊的不是工具,而是我們通過使用最適合我們需求的工具獲得的知識。你會不會從 JupyterLab 或 Jupyter Notebook 切換到Dataspell呢?