reference:https://blog.csdn.net/zhusongziye/article/details/80370143
本篇將給大家介紹一款超級好用的工具: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 應用,我們可以通過它的基本架構更清楚的瞭解:
可以看到,這裏的核心是 notebook 的服務器。用戶通過瀏覽器連接到該服務器,而 notebook 呈現爲 Web 應用。用戶在 Web 應用中編寫的代碼通過該服務器發送給內核,內核運行代碼,並將結果發送回該服務器。然後,任何輸出都會返回到瀏覽器中。保存 notebook 時,它將作爲 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,可以通過選中文件,點擊 "shutdown" 來操作操作,但請確認先保存:
通過在終端中按兩次 Ctrl + C,可以關閉整個服務器。
notebook 界面
notebook 界面由基本的單元格組成,每個單元格在可編輯狀態下可以任意的輸入代碼和註釋說明(markdown)。默認的是代碼格式,也就是下圖中工具欄列表所示的 code
。
單元格 綠色 代表內容可編輯狀態(比如輸入代碼),藍色 代表單元格可操作狀態(比如刪除單元格,必須回到藍色),而藍色與綠色之間可以用Esc
和 Enter
來切換。
Kernel
的小圓圈在空閒狀態下是空的,而當運行代碼時,會被填滿,所以可以通過觀察 Kernel
的狀態觀察程序是否運行完成。
代碼單元格
notebook 中的大部分工作均在代碼單元格中完成。編寫和執行代碼都在這裏,就像我們平時在 IDE 軟件裏敲代碼一樣,給變量賦值、定義函數和類、導入包等。執行單元格代碼可以通過 Shift + Enter
來完成。下面是一個示例:
Markdown 單元格
Markdown
是格式化語法,可以加入鏈接、將文本樣式設爲粗體或斜體和設置代碼格式。像代碼單元格一樣,按 Shift + Enter
或 Ctrl + Enter
可運行 Markdown 單元格,這會將 Markdown 呈現爲格式化文本。
Markdown
在這裏就不詳細介紹了,如果不清楚可以查看官網:http://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 關鍵字的使用,這裏只列出了兩個常用的介紹給大家。更多內容請參考:http://ipython.readthedocs.io/en/stable/interactive/magics.html
總結
通過本篇,相信你已經瞭解並知道如何使用 Jupyter notebook
了,但是還需要一些實際的操作才能更熟練的使用它,包括一些快捷鍵的使用。
https://jupyter.readthedocs.io/en/latest/content-quickstart.html