Jupyter notebook快速入門教程

路遠發表於2018-05-12

作者:xiaoyu

微信公眾號:Python資料科學

知乎:python資料分析師


Jupyter notebook快速入門教程

本篇將給大家介紹一款超級好用的工具:Jupyter notebook

為什麼要介紹這款工具呢?

如果你想使用Python學習資料分析或資料探勘,那麼它應該是你第一個應該知道並會使用的工具,它很容易上手,用起來非常方便,是個對新手非常友好的工具。而事實也證明它的確很好用,在資料探勘平臺 Kaggle 上,使用 Python 的資料愛好者絕大多數使用 jupyter notebook 來實現分析和建模的過程,因此,如果你想學習機器學習,資料探勘,那麼這款軟體你真的應該瞭解一下。

本篇博主總結了關於Jupyter notebook的一些關鍵點,幫助大家快速瞭解並使用它。

什麼是Jupyter notebook?

Jupyter notebook 是一種 Web 應用,它能讓使用者將說明文字、數學方程、程式碼和視覺化內容全部組合到一個易於共享的文件中,非常方便研究和教學。在原始的 Python shell 與 IPython 中,視覺化在單獨的視窗中進行,而文字資料以及各種函式和類指令碼包含在獨立的文件中。但是,notebook 能將這一切集中到一處,讓使用者一目瞭然。

Jupyter notebook特別適合做資料處理,其用途可以包括資料清理和探索、視覺化、機器學習和大資料分析。

Jupyter notebook是如何工作的?

Jupyter notebook 源於 Fernando Perez 發起的 IPython 專案。IPython 是一種互動式 shell,與普通的 Python shell 相似,但具有一些更高階的功能,例如語法高亮顯示和程式碼補全,還有一些 magic 操作,十分方便。Jupyter notebook 將 IPython 做成了一種 Web 應用,我們可以通過它的基本架構更清楚的瞭解:

Jupyter notebook快速入門教程
可以看到,這裡的核心是 notebook 的伺服器。使用者通過瀏覽器連線到該伺服器,而 notebook 呈現為 Web 應用。使用者在 Web 應用中編寫的程式碼通過該伺服器傳送給核心,核心執行程式碼,並將結果傳送回該伺服器。然後,任何輸出都會返回到瀏覽器中。儲存 notebook 時,它將作為 JSON 檔案(副檔名為 .ipynb)寫入到該伺服器中。

此架構的一個優點是,核心無需執行 Python。由於 notebook 和核心分開,因此可以在兩者之間傳送任何語言的程式碼。例如,早期的兩個非 Python 核心分別是 R 語言和 Julia 語言。使用 R 核心時,用 R 編寫的程式碼將傳送給執行該程式碼的 R 核心,這與在 Python 核心上執行 Python 程式碼完全一樣。IPython notebook 已被改名,因為 notebook 變得與程式語言無關。新的名稱 Jupyter 由 JuliaPythonR 組合而成。

安裝Jupyter notebook

最簡單的方法就是使用 Anaconda,其發行版附帶了 Jupyter notebook。

在 conda 環境下安裝 Jupyter notebook 可以使用 conda install jupyter notebook。當然,也可以通過 pip 來安裝 pip install jupyter notebook

啟動 notebook 伺服器

啟動 notebook 很簡單,只需要在終端環境下輸入 jupyter notebook, 伺服器就會在當前操作的目錄下啟動。當然你可以建立一些專門用來執行 notebook 的資料夾,尤其對於不同的 Python版本以及一些專案(後面會提到)。

啟動後,預設的 notebook 伺服器的執行地址是 http://localhost:8888。只要 notebook 伺服器仍在執行,你隨時都能通過在瀏覽器中輸入 http://localhost:8888 返回到 web 頁面中。

Jupyter notebook快速入門教程

可以通過點選 “New” 建立新的 notebook、文字檔案、資料夾或終端。

Jupyter notebook快速入門教程

“Notebook”下的列表顯示了已安裝的核心。這個示例中可以看到版本是 Python 2.7,因此列出了 Python 2.7 核心。當然,如果你同時安裝了其它核心比如 Python 3,那麼它也會在列表中同時出現。這又是 notebook 的另一大好處,就是可以同時管理多個版本,當你同時需要 Python 2 和 Python 3,或者 Scala 2.10 和 2.11 的核心的時候,是十分方便的。

而對於關閉 notebook,可以這樣操作:

Jupyter notebook快速入門教程

notebook 介面

notebook 介面由基本的單元格組成,每個單元格在可編輯狀態下可以任意的輸入程式碼和註釋說明(markdown)。預設的是程式碼格式,也就是下圖中所示的 code

Jupyter notebook快速入門教程

Jupyter notebook快速入門教程
單元格綠色代表內容可編輯狀態,藍色代表單元格可操作狀態(比如刪除單元格,必須回到藍色),而藍色與綠色之間可以用 EscEnter 來切換。

Jupyter notebook快速入門教程

Kernel 的小圓圈在空閒狀態下是空的,而當執行程式碼時,會被填滿,所以可以通過觀察 Kernel 的狀態觀察程式是否執行完成。

程式碼單元格

notebook 中的大部分工作均在程式碼單元格中完成。編寫和執行程式碼都在這裡,就像我們平時在 IDE 軟體裡敲程式碼一樣,給變數賦值、定義函式和類、匯入包等。執行單元格程式碼可以通過 Shift + Enter 來完成。下面是一個示例:

Jupyter notebook快速入門教程

Markdown 單元格

Markdown 是格式化語法,可以加入連結、將文字樣式設為粗體或斜體和設定程式碼格式。像程式碼單元格一樣,按 Shift + EnterCtrl + Enter 可執行 Markdown 單元格,這會將 Markdown 呈現為格式化文字。

Markdown 在這裡就不詳細介紹了,如果不清楚可以檢視官網:www.markdown.cn/。下面是一個 Markdown 的示例:

Jupyter notebook快速入門教程

快捷鍵

notebook 自帶一組快捷鍵,能讓你快速使用鍵盤與單元格互動,而無需使用滑鼠和工具欄。熟悉這些快捷鍵需要花費一點時間,但如果能熟練掌握,將大大加快你在 notebook 中的工作速度。所有的快捷鍵就不在這裡展示了,因為這些快捷鍵可以通過單元格 藍色 狀態下按 "h" 來檢視:

Jupyter notebook快速入門教程

Magic 關鍵字

Magic關鍵字是 IPython 的一些高階用法,可以執行特殊的命令,然後控制 notebook。例如,在 notebook 中可以使用 %matplotlib 將 matplotlib 設定為以互動方式工作。

Magic 命令的前面帶有一個或兩個百分號(%%%),分別代表行 Magic 命令和單元格 Magic 命令。行 Magic 命令僅應用於編寫 Magic 命令時所在的行,而單元格 Magic 命令應用於整個單元格。

如果要測算整個單元格的執行時間,請使用 %%timeit,如下所示:

Jupyter notebook快速入門教程

如果要在 notebook 中嵌入視覺化內容,可以說使用 %matplotlib inline,如下所示:

Jupyter notebook快速入門教程

預設情況下,圖形呈現在各自的視窗中。但是,你可以通過命令傳遞引數,以選擇特定的“後端”(呈現影象的軟體)。要直接在 notebook 中呈現圖形,應將通過命令 %matplotlib inline 內聯後端一起使用。

提示:在解析度較高的螢幕(例如 Retina 螢幕)上,notebook 中的預設影象可能會顯得模糊。可以在 %matplotlib inline 之後使用 %config InlineBackend.figure_format = 'retina' 來呈現解析度較高的影象。

當然,還有很多 Magic 關鍵字的使用,這裡只列出了兩個常用的介紹給大家。更多內容請參考:ipython.readthedocs.io/en/stable/i…

總結

通過本篇,相信你已經瞭解並知道如何使用 Jupyter notebook 了,但是還需要一些實際的操作才能更熟練的使用它,包括一些快捷鍵的使用,公眾號後臺回覆 "notebook快捷鍵" 可獲取一份練習快捷鍵的輔助材料。


關注微信公眾號Python資料科學,獲取 120G 人工智慧 學習資料。

Jupyter notebook快速入門教程

Jupyter notebook快速入門教程

相關文章