jupyter notebook快速入門及使用詳解
一、jupyter notebook是什麼
官網的介紹是:Jupyter Notebook是一個Web應用程式,允許您建立和共享包含實時程式碼,方程,視覺化和說明文字的文件。 用途包括:資料清理和轉換,數值模擬,統計建模,機器學習等等。
簡單的介紹就是:Jupyter Notebook是Ipython的升級版,而Ipython可以說是一個加強版的互動式 Shell,也就是說,它比在terminal裡執行python會更方便,介面更友好,功能也更強大。怎麼強大法,往下看就知道了。
此架構的一個優點是,核心無需執行 Python。由於 notebook 和核心分開,因此可以在兩者之間傳送任何語言的程式碼。例如,早期的兩個非 Python 核心分別是 R 語言和 Julia 語言。使用 R 核心時,用 R 編寫的程式碼將傳送給執行該程式碼的 R 核心,這與在 Python 核心上執行 Python 程式碼完全一樣。IPython notebook 已被改名,因為 notebook 變得與程式語言無關。新的名稱 Jupyter 由 Julia、Python 和 R 組合而成。如果有興趣,不妨看看可用核心的列表。
另一個優點是,你可以在任何地方執行 notebook 伺服器,並且可通過網際網路訪問伺服器。通常,你會在儲存所有資料和 notebook 檔案的自有計算機上執行伺服器。但是,你也可以在遠端計算機或雲實例(如 Amazon 的 EC2)上設定伺服器。之後,你就可以在世界上任何地方通過瀏覽器訪問 notebook。
二、jupyter notebook的安裝和配置
1. 安裝
安裝非常簡單,只需要在終端輸入:
pip install jupyter
開啟jupyter notebook 也只需要在終端輸入:
jupyter notebook
執行上面的命令之後,你將看到類似下面這樣的輸出:
如上圖,它打開了一個埠,並且會在你的瀏覽器中開啟這個頁面,主目錄是圖中的那個directory(可能第一次開啟沒有這個目錄)。
2、配置
jupyter notebook --generate-config
開啟“C:\Users\Administrator\.jupyter”資料夾,可以看到裡面有個配置檔案。
修改jupyter_notebook_config.py配置檔案
開啟這個配置檔案,找到“c.NotebookApp.notebook_dir=……”,把路徑改成自己的工作目錄。
配置檔案修改完成後, 以後在jupyter notebook中寫的程式碼等都會儲存在自己建立的目錄中。
jupyter notebook的自定義啟動(變了)
配置檔案修改成後,就可以啟動jupyter notebook了,命令列視窗中輸入jupyter notebook,
預設瀏覽器就會開啟一個頁面
jupyter notebook的啟動
命令列視窗輸入:jupyter notebook
三、使用
1、開啟一個新文件
在主頁面的右上角點new即可新建一個你想要的檔案型別。
如上圖,jupyter也可以開啟一個terminal,還可以作為一個text文字編輯器,功能明顯是比terminal強大了。
下面的Notebooks型別除了python 也是可以加入其他型別的文件的,具體方法百度一下就好。
2、python編輯器介紹
點選python2後會出現一下介面:
稍微介紹一下notebook 介面的組成部分1)notebook 的名稱2)主工具欄提供了儲存、匯出、過載 notebook,以及重啟核心等選項3)快捷鍵4)notebook 編輯區
最下面的哪個 In [ ]: 的框叫做單元格,你可以把你的程式碼分成一段段的單元格輸入,然後可以逐個單元格地執行。注意,這個功能是非常友好的,有時候只修改了中間的一小段程式碼,又不想全部程式碼都要重新執行的時候這個功能就非常有用了。另外,單元格是可以改變順序的。而且可以輸出圖片和繪圖!非常強大吧!
這些只要稍微嘗試一下就懂的,下面主要介紹一些常用的技巧
**注意,jupyter notebook 是支援 TAB 鍵自動補充單詞的,再一次展示了其強大友好的一面!
(1).修改文件名稱
方法一:點上圖的Untitled
方法二:點File,再點rename
(2).匯出文件
步驟:點File,再點Download as
發現裡面支援好幾種格式的匯出,第一個ipynb是notebook的格式,是一種類json的格式儲存,其他的建議你們都試一試,你會感到非常驚喜的。
(3).儲存
Ctrl + S 快捷鍵的可以儲存你的文件的,預設是儲存為ipynb,儲存在你的主目錄下!
(4).單元格格式
注意到快捷鍵欄中有一個code的下拉框,點開發現有幾個選項:
這裡介紹一下
- Code格式就是正常的python程式碼格式
- Markdown的一個text文件編輯格式,就像在word裡編寫一樣
- Heading就是給Markdown的句子設定標題等級,像word的標題一,標題二...
- Raw NBConvert 沒用過不了解,可以自行百度或者看官網介紹
下面舉例說明一下
選擇一個空的單元格,code下拉框選擇Heading,會出現一個不同型別的 cell:
改變單元格型別時彈出訊息中有解釋,後面那個單元格以 # 標記開頭,意味著這是一個一級標題。如果需要子標題,可以使用以下標記表示:
# : 一級標題## : 二級標題### : 三級標題...
輸入內容後再執行一下(快捷欄裡有),會出現類似下面的情況:
我一共輸入了三級標題,點其中一個,你會發現它的code下拉欄顯示是markdown型別
你以後程式碼裡print 的內容都是以markdown的格式顯示的。
(5).快捷鍵
常用的快捷鍵是:
- Ctrl + Enter: 執行單元格程式碼
- Shift + Enter: 執行單元格程式碼並且移動到下一個單元格
- Alt + Enter: 執行單元格程式碼,新建並移動到下一個單元格
這幾個快捷鍵都是非常常用的。
(6).歷史輸入和輸出變數
與標準 Shell 類似,IPython 中也可以通過 _ 和 _ _ 訪問上一次和上上一次的輸出。
當你寫的單元格多了,肯定會注意到,IPython 中每一次的輸入輸出都有序號。你可以通過一下方法訪問這些輸入和輸出:
- _:訪問上一次輸出
- __:訪問上上一次輸出
- _X:訪問歷史 X 行輸出
- _iX:訪問歷史 X 行輸入
其中小寫字母 “i”,代表 “in”。
四、外部功能
上面講的是jupyter 的一些使用方法和技巧,其實它還有很多強大的外部功能的,下面給大家介紹一下。
(1).魔術命令
在 IPython 的會話環境中,所有檔案都可以通過 %run 命令來當做指令碼執行,並且檔案中的變數也會隨即匯入當前名稱空間。
即,對於一個模組檔案,你對他使用 %run 命令的效果和 from module import * 相同
這種以 % 開頭的命令在 IPython 中被稱為魔術命令,用於加強 shell 的功能。
常用的魔術命令有:
%quickref | 顯示 IPython 快速參考 |
%magic | 顯示所有魔術命令的詳細文件 |
%debug | 從最新的異常跟蹤的底部進入互動式偵錯程式 |
%pdb | 在異常發生後自動進入偵錯程式 |
%reset | 刪除 interactive 名稱空間中的全部變數 |
%runscript.py | 執行script.py |
%prunstatement | 通過 cProfile 執行對statement的逐行效能分析 |
%timestatement | 測試statement的執行時間 |
%timeitstatement | 多次測試statement的執行時間並計算平均值 |
%who、%who_ls、%whos | 顯示 interactive 名稱空間中定義的變數,資訊級別/冗餘度可變 |
%xdelvariable | 刪除variable,並嘗試清除其在 IPython 中的物件上的一切引用 |
!cmd | 在系統 shell 執行cmd |
output=!cmd args | 執行cmd並賦值 |
%bookmark | 使用 IPython 的目錄書籤系統 |
%cddirecrory | 切換工作目錄 |
%pwd | 返回當前工作目錄(字串形式) |
%env | 返回當前系統變數(以字典形式) |
對魔術命令不熟悉的話可以通過 %magic 檢視詳細文件;對某一個命令不熟悉的話,可以通過 %cmd? 內省機制檢視特定文件
(2).新增外掛
a)側邊欄目錄導航
當文章內容非常長的時候,前後找內容,很麻煩,不如加一個sidebar,方便導航方法:https://github.com/ipython-contrib/IPython-notebook-extensions/tree/master/nbextensions/usability/toc2
b)隱藏程式碼按鈕
有時候,希望程式碼可以隱藏,這樣子文件看起來,就會乾淨一些
點選按鈕,就可以隱藏所有的程式碼,具體做法:http://stackoverflow.com/questions/27934885/how-to-hide-code-from-cells-in-ipython-notebook-visualized-with-nbviewer當然,還有更多的extention可見https://github.com/ipython-contrib/IPython-notebook-extensions/
參考【https://www.douban.com/review/7890354/】
(3).執行python檔案
利用jupyter的cell是可以執行python檔案的。
方法一:
%run file.py
方法二:在unitx command前面加入一個感嘆號“!” ,如:
!python myfile.py
(4).匯入外部程式碼
比如有一個test.py檔案,需要將其載入到jupyter的一個cell中
在需要匯入該段程式碼的cell中輸入
%load test.py #test.py是當前路徑下的一個python檔案
shift + enter執行後,%load test.py被自動加入了註釋符號#,test.py中的所有程式碼都被load到了當前的cell中
或者從從網路load程式碼到jupyter
在cell中輸入%load http://.....,然後執行該cell,就會將load後面所對應地址的程式碼load到當前的cell中;
(5).自定義快捷鍵
參考官方文件:
http://nbviewer.jupyter.org/github/ipython/ipython/blob/3.x/examples/Notebook/Custom%20Keyboard%20Shortcuts.ipynb
參考
【1】官網安裝:https://jupyter.readthedocs.io/en/latest/install.html
【2】jupyter使用小結
【3】Jupyter Notebook 快速入門(上)
【4】jupyter notebook 各種用法記錄(陸續更新)
【5】https://blog.csdn.net/lee_j_r/article/details/52791228
【6】http://www.cnblogs.com/zlslch/p/6984403.html