1. 程式人生 > 程式設計 >Jupyter notebook快速入門教程(推薦)

Jupyter notebook快速入門教程(推薦)

本文主要介紹了Jupyter notebook快速入門教程,分享給大家,具體如下:

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,可以通過選中檔案,點選 "shutdown" 來操作操作,但請確認先儲存:

Jupyter notebook快速入門教程(推薦)

通過在終端中按兩次 Ctrl + C,可以關閉整個伺服器。

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 在這裡就不詳細介紹了,如果不清楚可以檢視官網:http://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 關鍵字的使用,這裡只列出了兩個常用的介紹給大家。更多內容請參考:http://ipython.readthedocs.io/en/stable/interactive/magics.html

總結

通過本篇,相信你已經瞭解並知道如何使用 Jupyter notebook 了,但是還需要一些實際的操作才能更熟練的使用它,包括一些快捷鍵的使用。

https://jupyter.readthedocs.io/en/latest/content-quickstart.html

到此這篇關於Jupyter notebook快速入門教程(推薦)的文章就介紹到這了,更多相關Jupyter notebook 入門內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!