Jupyter notebook快速入門教程

做者:xiaoyuhtml

微信公衆號:Python數據科學python

知乎:python數據分析師web


本篇將給你們介紹一款超級好用的工具:Jupyter notebookshell

爲何要介紹這款工具呢?編程

若是你想使用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 應用,咱們能夠經過它的基本架構更清楚的瞭解:markdown

能夠看到,這裏的核心是 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 頁面中。

能夠經過點擊 「New」 建立新的 notebook、文本文件、文件夾或終端。

「Notebook」下的列表顯示了已安裝的內核。這個示例中能夠看到版本是 Python 2.7,所以列出了 Python 2.7 內核。固然,若是你同時安裝了其它內核好比 Python 3,那麼它也會在列表中同時出現。這又是 notebook 的另外一大好處,就是能夠同時管理多個版本,當你同時須要 Python 2 和 Python 3,或者 Scala 2.10 和 2.11 的內核的時候,是十分方便的。

而對於關閉 notebook,能夠這樣操做:

notebook 界面

notebook 界面由基本的單元格組成,每一個單元格在可編輯狀態下能夠任意的輸入代碼和註釋說明(markdown)。默認的是代碼格式,也就是下圖中所示的 code

單元格綠色表明內容可編輯狀態,藍色表明單元格可操做狀態(好比刪除單元格,必須回到藍色),而藍色與綠色之間能夠用 EscEnter 來切換。

Kernel 的小圓圈在空閒狀態下是空的,而當運行代碼時,會被填滿,因此能夠經過觀察 Kernel 的狀態觀察程序是否運行完成。

代碼單元格

notebook 中的大部分工做均在代碼單元格中完成。編寫和執行代碼都在這裏,就像咱們平時在 IDE 軟件裏敲代碼同樣,給變量賦值、定義函數和類、導入包等。執行單元格代碼能夠經過 Shift + Enter 來完成。下面是一個示例:

Markdown 單元格

Markdown 是格式化語法,能夠加入連接、將文本樣式設爲粗體或斜體和設置代碼格式。像代碼單元格同樣,按 Shift + EnterCtrl + Enter 可運行 Markdown 單元格,這會將 Markdown 呈現爲格式化文本。

Markdown 在這裏就不詳細介紹了,若是不清楚能夠查看官網:www.markdown.cn/。下面是一個 Markdown 的示例:

快捷鍵

notebook 自帶一組快捷鍵,能讓你快速使用鍵盤與單元格交互,而無需使用鼠標和工具欄。熟悉這些快捷鍵須要花費一點時間,但若是能熟練掌握,將大大加快你在 notebook 中的工做速度。全部的快捷鍵就不在這裏展現了,由於這些快捷鍵能夠經過單元格 藍色 狀態下按 "h" 來查看:

Magic 關鍵字

Magic關鍵字是 IPython 的一些高級用法,能夠運行特殊的命令,而後控制 notebook。例如,在 notebook 中可使用 %matplotlib 將 matplotlib 設置爲以交互方式工做。

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

若是要測算整個單元格的運行時間,請使用 %%timeit,以下所示:

若是要在 notebook 中嵌入可視化內容,能夠說使用 %matplotlib inline,以下所示:

默認狀況下,圖形呈如今各自的窗口中。可是,你能夠經過命令傳遞參數,以選擇特定的「後端」(呈現圖像的軟件)。要直接在 notebook 中呈現圖形,應將經過命令 %matplotlib inline 內聯後端一塊兒使用。

提示:在分辨率較高的屏幕(例如 Retina 顯示屏)上,notebook 中的默認圖像可能會顯得模糊。能夠在 %matplotlib inline 以後使用 %config InlineBackend.figure_format = 'retina' 來呈現分辨率較高的圖像。

固然,還有不少 Magic 關鍵字的使用,這裏只列出了兩個經常使用的介紹給你們。更多內容請參考:ipython.readthedocs.io/en/stable/i…

總結

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


關注微信公衆號Python數據科學,獲取 120G 人工智能 學習資料。

相關文章
相關標籤/搜索