一、簡介
Jupyter Notebook是一個開源的Web應用程序,允許用戶創建和共享包含代碼、方程式、可視化和文本的文檔。它的用途包括:數據清理和轉換、數值模擬、統計建模、數據可視化、機器學習等等。它具有以下優勢:
- 可選擇語言:支持超過40種編程語言,包括Python、R、Julia、Scala等。
- 分享筆記本:可以使用電子郵件、Dropbox、GitHub和Jupyter Notebook Viewer與他人共享。
- 交互式輸出:代碼可以生成豐富的交互式輸出,包括HTML、圖像、視頻、LaTeX等等。
- 大數據整合:通過Python、R、Scala編程語言使用Apache Spark等大數據框架工具。支持使用pandas、scikit-learn、ggplot2、TensorFlow來探索同一份數據。
二、安裝與運行
雖然Jupyter可以運行多種編程語言,但Python是安裝Jupyter Noterbook的必備條件(Python2.7,或Python3.3以上)。有兩種安裝方式:使用Anaconda安裝或使用pip命令安裝。關於安裝的全部信息可以在官網讀到:安裝Jupyter。
2.1使用Anaconda安裝
對於小白,強烈建議使用Anaconda發行版安裝Python和Jupyter,其中包括Python、Jupyter Notebook和其他常用的科學計算和數據科學軟件包。
首先,下載Anaconda。建議下載Anaconda的最新Python 3版本。其次,請按照下載頁面上的說明安裝下載的Anaconda版本。最后,安裝成功!
2.2使用pip命令安裝
對於有經驗的Python用戶,可以使用Python的包管理器pip而不是Anaconda 來安裝Jupyter 。
如果已經安裝了Python 3:
python3 -m pip install --upgrade pip
python3 -m pip install jupyter
- 1
- 2
如果已經安裝了Python 2:
python -m pip install --upgrade pip python -m pip install jupyter
- 1
- 2
恭喜,你已經成功安裝好了!
2.3運行Jupyter Notebook
成功安裝Jupyter Notebook后,在Terminal (Mac / Linux)或Command Prompt(Windows)中運行以下命令就可打開Jupyter Notebook。
jupyter notebook
- 1
下面演示一下在Windows系統中打開Jupyter Notebook:
參閱Windows 常用 CMD 命令了解關於Command Prompt更多信息。
參閱運行Notebook了解更多詳情。
三、主面板(Notebook Dashboard)
打開Notebook,可以看到主面板。在菜單欄中有Files、Running、Clusters、Conda四個選項。用到最多的是Files,我們可以在這里完成notebook的新建、重命名、復制等操作。具體功能如下:
在Running中,可以看到正在運行的notebook,我們可以選擇結束正在運行的程序。
至於Clusters、Conda一般用不到,暫不做介紹,后續補充。
四、編輯界面(Notebook Editor)
一個notebook的編輯界面主要由四部分組成:名稱、菜單欄、工具條以及單元(Cell),如下圖所示:
4.1 名稱
在這里,我們可以修改notebook的名字,直接點擊當前名稱,彈出對話框進行修改:
4.2菜單欄
菜單欄中有File、Edit、View、Insert、Cell、Kernel、Help等功能,下面逐一介紹。
4.2.1 File
File中的按鈕選項如下圖所示:
具體功能如下表:
選項 | 功能 |
---|---|
New Notebook | 新建一個notebook |
Open… | 在新的頁面中打開主面板 |
Make a Copy… | 復制當前notebook生成一個新的notebook |
Rename… | notebook重命名 |
Save and Checkpoint | 將當前notebook狀態存為一個Checkpoint |
Revert to Checkpoint | 恢復到此前存過的Checkpoint |
Print Preview | 打印預覽 |
Download as | 下載notebook存為某種類型的文件 |
Close and Halt | 停止運行並退出該notebook |
4.2.2 Edit
Edit中的按鈕選項如下圖所示:
具體功能如下表:
選項 | 功能 |
---|---|
Cut Cells | 剪切單元 |
Copy Cells | 復制單元 |
Paste Cells Above | 在當前單元上方粘貼上復制的單元 |
Paste Cells Below | 在當前單元下方粘貼上復制的單元 |
Paste Cells & Replace | 替換當前的單元為復制的單元 |
Delete Cells | 刪除單元 |
Undo Delete Cells | 撤回刪除操作 |
Split Cell | 從鼠標位置處拆分當前單元為兩個單元 |
Merge Cell Above | 當前單元和上方單元合並 |
Merge Cell Below | 當前單元和下方單元合並 |
Move Cell Up | 將當前單元上移一層 |
Move Cell Down | 將當前單元下移一層 |
Edit Notebook Metadata | 編輯notebook的元數據 |
Find and Replace | 查找替換,支持多種替換方式:區分大小寫、使用JavaScript正則表達式、在選中單元或全部單元中替換 |
4.2.3 View
View中的按鈕選項如下圖所示:
具體功能如下表:
選項 | 功能 |
---|---|
Toggle Header | 隱藏/顯示Jupyter notebook的logo和名稱 |
Toggle Toolbar | 隱藏/顯示Jupyter notebook的工具條 |
Cell Toolbar | 更改單元展示式樣 |
View中的功能可以讓用戶更好的展示自己的notebook,但對編寫代碼、實現功能沒有影響。
4.2.4 Insert
功能:在當前單元上方/下方插入新的單元。
4.2.5 Cell
選項 | 功能 |
---|---|
Run Cells | 運行單元內代碼 |
Run Cells and Select Below | 運行單元內代碼並將光標移動到下一單元 |
Run Cells and Insert Below | 運行單元內代碼並在下方新建一單元 |
Run All | 運行所有單元內的代碼 |
Run All Above | 運行該單元(不含)上方所有單元內的代碼 |
Run All Below | 運行該單元(含)下方所有單元內的代碼 |
Cell Type | 選擇單元內容的性質 |
Current Outputs | 對當前單元的輸出結果進行隱藏/顯示/滾動/清除 |
All Output | 對所有單元的輸出結果進行隱藏/顯示/滾動/清除 |
4.2.6 Kernel
[圖片上傳中…(5.png-36664e-1514169774199-0)]
選項 | 功能 |
---|---|
Interrupt | 中斷與內核連接(等同於ctrl-c) |
Restart | 重啟內核 |
Restart & Clear Output | 重啟內核並清空現有輸出結果 |
Restart & Run All | 重啟內核並重新運行notebook中的所有代碼 |
Reconnect | 重新連接到內核 |
Change kernel | 切換內核 |
4.2.7 Help
選項 | 功能 |
---|---|
User Interface Tour | 用戶使用指南,非常棒的功能,帶你全面了解notebook |
Keyboard Shortcuts | 快捷鍵大全 |
Notebook Help | notebook使用指南 |
Markdown | Markdown使用指南 |
Python…pandas | 各類使用指南 |
About | 關於Jupyter Notebook的一些信息 |
4.3 工具條
工具條中的功能基本上在菜單中都可以實現,這里是為了能更快捷的操作,將一些常用按鈕放了出來。下圖是對各按鈕的解釋。
4.4 單元(Cell)
在單元中我們可以編輯文字、編寫代碼、繪制圖片等等。對於單元的詳細內容放在第五節中介紹。
五、單元(Cell)
5.1兩種模式與快捷鍵
對於Notebook中的單元,有兩種模式:命令模式(Command Mode)與編輯模式(Edit Mode),在不同模式下我們可以進行不同的操作。
如上圖,在編輯模式(Edit Mode)下,右上角出現一只鉛筆的圖標,單元左側邊框線呈現出綠色,點Esc鍵或運行單元格(ctrl-enter)切換回命令模式。
在命令模式(Command Mode)下,鉛筆圖標消失,單元左側邊框線呈現藍色,按Enter鍵或者雙擊cell變為編輯狀態。
5.1.1命令模式下的快捷鍵
5.1.2編輯模式下的快捷鍵
注意不要死記硬背,在使用過程中需要什么就去查,多用用就能記住了。
5.2 Cell的四種功能
Cell有四種功能:Code、Markdown、Raw NBConvert、Heading,這四種功能可以互相切換。Code用於寫代碼,Markdown用於文本編輯,Raw NBConvert中的文字或代碼等都不會被運行,Heading是用於設置標題的,這個功能已經包含在Markdown中了。四種功能的切換可以使用快捷鍵或者工具條。
Code用於寫代碼,三類提示符及含義如下:
提示符 | 含義 |
---|---|
In[ ] | 程序未運行 |
In[num] | 程序運行后 |
In[*] | 程序正在運行 |
Markdown用於編輯文本,給出常用的Markdown用法:
其他非常用的用法需要時可以再查閱。
六、魔法函數
使用魔法函數可以簡單的實現一些單純python要很麻煩才能實現的功能。
%:行魔法函數,只對本行代碼生效。
%%:Cell魔法函數,在整個Cell中生效,必須放於Cell首行。
%lsmagic:列出所有的魔法函數
%magic查看各個魔法函數的說明
?后面加上魔法函數名稱,可以查看該函數的說明
一些常用魔法函數的示例:
魔法函數 | 作用 |
---|---|
%%writefile | 調用外部python腳本 |
%run | 調用外部python腳本 |
%timeit | 測試單行語句的執行時間 |
%%timeit | 測試整個單元中代碼的執行時間 |
% matplotlib inline | 顯示 matplotlib 包生成的圖形 |
%%writefile | 寫入文件 |
%pdb | 調試程序 |
%pwd | 查看當前工作目錄 |
%ls | 查看目錄文件列表 |
%reset | 清除全部變量 |
%who | 查看所有全局變量的名稱,若給定類型參數,只返回該類型的變量列表 |
%whos | 顯示所有的全局變量名稱、類型、值/信息 |
%xmode Plain | 設置為當異常發生時只展示簡單的異常信息 |
%xmode Verbose | 設置為當異常發生時展示詳細的異常信息 |
%debug | bug調試,輸入quit退出調試 |
%env | 列出全部環境變量 |
注意這些命令是在Python kernel中適用的,其他 kernel 不一定適用
七、其他
(1)按tab鍵查看提示信息或者補全命令
(2)在一個庫、方法或變量前加上 ?,就可以獲得它的一個快速語法說明
(3)使用分號可以阻止該行函數的結果輸出