作者:xiaoyu
微信公眾號:Python資料科學
知乎:python資料分析師
本篇將給大家介紹一款超級好用的工具: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 應用,我們可以通過它的基本架構更清楚的瞭解:
JSON
檔案(副檔名為 .ipynb
)寫入到該伺服器中。
此架構的一個優點是,核心無需執行 Python。由於 notebook 和核心分開,因此可以在兩者之間傳送任何語言的程式碼。例如,早期的兩個非 Python 核心分別是 R 語言和 Julia 語言。使用 R 核心時,用 R 編寫的程式碼將傳送給執行該程式碼的 R 核心,這與在 Python 核心上執行 Python 程式碼完全一樣。IPython notebook 已被改名,因為 notebook 變得與程式語言無關。新的名稱 Jupyter 由 Julia
、Python
和 R
組合而成。
安裝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
。
Esc
和 Enter
來切換。
Kernel
的小圓圈在空閒狀態下是空的,而當執行程式碼時,會被填滿,所以可以通過觀察 Kernel
的狀態觀察程式是否執行完成。
程式碼單元格
notebook 中的大部分工作均在程式碼單元格中完成。編寫和執行程式碼都在這裡,就像我們平時在 IDE 軟體裡敲程式碼一樣,給變數賦值、定義函式和類、匯入包等。執行單元格程式碼可以通過 Shift + Enter
來完成。下面是一個示例:
Markdown 單元格
Markdown
是格式化語法,可以加入連結、將文字樣式設為粗體或斜體和設定程式碼格式。像程式碼單元格一樣,按 Shift + Enter
或 Ctrl + 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
人工智慧 學習資料。