安裝、配置Jupyter Notebook快速入門教程

  • What?
  • Why?
  • How?
  • ---安裝
  • ---啓動
  • ---關閉
  • ---保存
  • Markdown語法
  • Magic關鍵詞
  • 轉換notebook——toHTML
  • 建立幻燈片
  • 運行代碼

What?

文字化編程

notebook 是 Donald Knuth 在 1984 年提出的文字表達化編程的一種形式。在文字表達化編程中,直接在代碼旁寫出敘述性文檔,而不是另外編寫單獨的文檔。用 Donald Knuth 的話來講:html

讓咱們集中精力向人們解釋咱們但願計算機作什麼,而不是指示計算機作什麼。
歸根到底,代碼是寫給人看到,不是寫給計算機看的。notebook 偏偏提供了這種能力。你可以直接在代碼旁寫出敘述性文檔。這不只對閱讀 notebook 的人頗有用,並且對你未來回頭分析代碼也頗有用。shell

說點題外話:最近,文字表達化編程這個概念已經發展成爲一門完整的編程語言,即 Eve。編程

notebook 如何工做

Jupyter notebook 源自 Fernando Perez 發起的 IPython 項目。IPython 是一種交互式 shell,與普通的 Python shell 類似,但具備一些很好的功能(例如語法高亮顯示和代碼補全)。最初,notebook 的工做方式是,未來自 Web 應用(你在瀏覽器中看到的 notebook)的消息發送給 IPython 內核(在後臺運行的 IPython 應用程序)。內核執行代碼,而後將結果發送回 notebook。當前架構與之類似,具體見下圖。瀏覽器

摘自 Jupyter 文檔
核心是 notebook 的服務器。你經過瀏覽器鏈接到該服務器,而 notebook 呈現爲 Web 應用。你在 Web 應用中編寫的代碼經過該服務器發送給內核,內核運行代碼,並將結果發送回該服務器。以後,任何輸出都會返回到瀏覽器中。保存 notebook 時,它將做爲 JSON 文件(文件擴展名爲 .ipynb)寫入到該服務器中。服務器

Why?

此架構的一個優勢是,內核無需運行 Python。因爲 notebook 和內核分開,所以能夠在二者之間發送任何語言的代碼。例如,早期的兩個非 Python 內核分別是 R 語言和 Julia 語言。使用 R 內核時,用 R 編寫的代碼將發送給執行該代碼的 R 內核,這與在 Python 內核上運行 Python 代碼徹底同樣。IPython notebook 已被更名,由於 notebook 變得與編程語言無關。新的名稱 Jupyter 由 Julia、Python 和 R 組合而成。若是有興趣,不妨看看可用內核的列表。markdown

另外一個優勢是,你能夠在任何地方運行 notebook 服務器,而且可經過互聯網訪問服務器。一般,你會在存儲全部數據和 notebook 文件的自有計算機上運行服務器。可是,你也能夠在遠程計算機或雲實例(如 Amazon 的 EC2)上設置服務器。以後,你就能夠在世界上任何地方經過瀏覽器訪問 notebook。架構

How?

1、安裝 Jupyter notebook

目前,安裝 Jupyter 的最簡單方法是使用 Anaconda。該發行版附帶了 Jupyter notebook。你可以在默認環境下使用 notebook。編程語言

也就是說,只要你安裝了anaconda,你就同時默認安裝了jupyter notebookide

要在 conda 環境中安裝 Jupyter notebook,請使用函數

conda install jupyter notebook

也能夠經過 pip 來得到 Jupyter notebook。

pip install jupyter notebook

2、啓動 notebook 服務器

在終端或控制檯中輸入

jupyter notebook

服務器會在你運行此命令的目錄中啓動。

3、關閉 Jupyter

3.1 關閉running的notebook

經過在服務器主頁上選中 notebook 旁邊的複選框,而後點擊「Shutdown」(關閉),你就能夠關閉各個 notebook。可是,在這樣作以前,請確保你保存了工做!不然,在你上次保存後所作的任何更改都會丟失。下次運行 notebook 時,你還須要從新運行代碼。

3.2 關閉整個服務器

經過在終端中按兩次 Ctrl + C,能夠關閉整個服務器。再次提醒,這會當即關閉全部運行中的 notebook,所以,請確保你保存了工做!

4、保存Notebook

工具欄包含了保存按鈕,但 notebook 也會按期自動保存。標題右側會註明最近一次的保存。你可使用保存按鈕手動進行保存,也能夠按鍵盤上的 Esc,而後按 s。按 Esc 鍵會變爲命令模式,而 s 是「保存」的快捷鍵。

Markdown單元格

像代碼單元格同樣,按 Shift + Enter 或 Ctrl + Enter 可運行 Markdown 單元格,這會將 Markdown 呈現爲格式化文本。加入文本可以讓你直接在代碼旁寫出敘述性文檔,以及爲代碼和思路編寫文檔。

  • 連接
[Neo's home page](http://www.cnblogs.com/Neo007/)

效果:
Neo's home page

  • 強調效果
    可使用星號或下劃線( * 或 _ )來表示粗體或斜體,從而添增強調效果。對於斜體,在文本兩側加上一個星號或下劃線,例如 _gelato_
    *gelato* 會呈現爲 gelato

粗體文本使用兩個符號,例如 **aardvark**__aardvark__ 會呈現爲 aardvark

只要在文本兩側使用相同的符號,星號和下劃線的做用都同樣。

  • 代碼
    能夠經過兩種不一樣的方式顯示代碼,一種是與文本內聯,另外一種是將代碼塊與文本分離。要將代碼變爲內聯格式,請在文本兩側加上反撇號。
    例如,
`string.punctuation`

會呈現爲 string.punctuation

要建立代碼塊,請另起一行並用三個反撇號將文本包起來:

import requests
response = requests.get('https://www.udacity.com')

或者將代碼塊的每一行都縮進四個空格。

xxxximport requests
xxxxresponse = requests.get('https://www.udacity.com')
  • 數學表達式

在 Markdown 單元格中,可使用 LaTeX 符號建立數學表達式。notebook 使用 MathJax 將 LaTeX 符號呈現爲數學符號。要啓動數學模式,請在 LaTeX 符號兩側加上美圓符號(例如 \(y = mx + b\)),以建立內聯的數學表達式。對於數學符號塊,請使用兩個美圓符號:

$$
y = \frac{a}{b+c}
$$

此功能的確頗有用,所以,若是你沒有用過 LaTeX,請閱讀這篇入門文檔,它介紹瞭如何使用 LaTeX 來建立數學表達式。

Magic關鍵詞

Magic-What?

1.Magic 關鍵字是能夠在單元格中運行的特殊命令,能讓你控制 notebook 自己或執行系統調用(例如更改目錄)。
2.Magic 命令的前面帶有一個或兩個百分號(% 或 %%),分別對應行 Magic 命令和單元格 Magic 命令。行 Magic 命令僅應用於編寫 Magic 命令時所在的行,而單元格 Magic 命令應用於整個單元格。

注意:這些 Magic 關鍵字是特定於普通 Python 內核的關鍵字。若是使用其餘內核,這些關鍵字頗有可能無效。

Magic-How?

  1. 交互工做方式
%matplotlib

2.代碼計時
有時候,你可能要花些精力優化代碼,讓代碼運行得更快。在此優化過程當中,必須對代碼的運行速度進行計時。可使用 Magic 命令 timeit 測算函數的運行時間,以下所示:

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

3.在notebook 中嵌入可視化內容

4.在 notebook 中進行調試
對於 Python 內核,可使用 Magic 命令 %pdb 開啓交互式調試器。出錯時,你能檢查當前命名空間中的變量。

在上圖中,能夠看到我嘗試對字符串求和,這形成了錯誤。調試器指出了該錯誤,並提示你檢查代碼。

轉換notebook

jupyter nbconvert --to html notebook.ipynb

建立幻燈片

運行幻燈片

要經過 notebook 文件建立幻燈片,須要使用 nbconvert:

jupyter nbconvert notebook.ipynb --to slides

這只是將 notebook 轉換爲幻燈片必需的文件,你須要向其提供 HTTP 服務器才能真正看到演示文稿。

要轉換它並當即看到它,請使用

jupyter nbconvert notebook.ipynb --to slides --post serve

這會在瀏覽器中打開幻燈片,讓你能夠演示它。

運行代碼

提示:你能夠經過單擊代碼區域,而後使用鍵盤快捷鍵 Shift+Enter 或 Shift+ Return 來運行代碼。或者在選擇代碼後使用播放(run cell)按鈕執行代碼。

小結

這個簡短的介紹到此結束,它主要介紹了在數據科學工做流程中的 Python 工具。充分利用 Anaconda 和 Jupyter notebook 不只能提高你的工做效率,還會讓你心情更愉快。要想充分發揮它們的做用,你還要學習不少東西(例如 Markdown 和 LaTeX),但很快你就會知道爲什麼要以其餘方式進行數據分析。

相關文章
相關標籤/搜索