轉一篇詳細的jupyter notebook

最近由於項目需要,開始學習python,然後發現一個非常有用的python交互式編輯器,非常容易上手而且非常有用和實在,本博文是對學習jupyter notebook的一個彙總和記錄,與大家一起分享!下面的內容是針對ubuntu 系統的,當然,jupyter notebook在windows也是支持的。

一、jupyter notebook是什麼

官網的介紹是:Jupyter Notebook是一個Web應用程序,允許您創建和共享包含實時代碼,方程,可視化和說明文本的文檔。 用途包括:數據清理和轉換,數值模擬,統計建模,機器學習等等。

簡單的介紹就是:Jupyter Notebook是Ipython的升級版,而Ipython可以說是一個加強版的交互式 Shell,也就是說,它比在terminal裏運行python會更方便,界面更友好,功能也更強大。怎麼強大法,往下看就知道了。


二、jupyter notebook的安裝和打開

安裝非常簡單,只需要在終端輸入:

  1. pip install jupyter  
pip install jupyter
打開jupyter notebook 也只需要在終端輸入:
  1. jupyter notebook  
jupyter notebook
運行上面的命令之後,你將看到類似下面這樣的輸出: 

如上圖,它打開了一個端口,並且會在你的瀏覽器中打開這個頁面,主目錄是圖中的那個directory(可能第一次打開沒有這個目錄)。

三、使用

1、打開一個新文檔

在主頁面的右上角點new即可新建一個你想要的文件類型。

如上圖,jupyter也可以打開一個terminal,還可以作爲一個text文本編輯器,功能明顯是比terminal強大了。

下面的Notebooks類型除了python 也是可以加入其他類型的文檔的,具體方法百度一下就好。

2、python編輯器介紹

點擊python2後會出現一下界面:

稍微介紹一下notebook 界面的組成部分1)notebook 的名稱2)主工具欄提供了保存、導出、重載 notebook,以及重啓內核等選項3)快捷鍵4)notebook 編輯區

最下面的哪個 In [ ]: 的框叫做單元格,你可以把你的代碼分成一段段的單元格輸入,然後可以逐個單元格地運行。注意,這個功能是非常友好的,有時候只修改了中間的一小段代碼,又不想全部代碼都要重新運行的時候這個功能就非常有用了。另外,單元格是可以改變順序的。而且可以輸出圖片和繪圖!非常強大吧!

這些只要稍微嘗試一下就懂的,下面主要介紹一些常用的技巧

**注意,jupyter notebook 是支持 TAB 鍵自動補充單詞的,再一次展示了其強大友好的一面!

A.修改文檔名稱

方法一:點上圖的Untitled

方法二:點File,再點rename

B.導出文檔

步驟:點File,再點Download as

發現裏面支持好幾種格式的導出,第一個ipynb是notebook的格式,是一種類json的格式保存,其他的建議你們都試一試,你會感到非常驚喜的。

C.保存

Ctrl + S 快捷鍵的可以保存你的文檔的,默認是保存爲ipynb,保存在你的主目錄下!

D.單元格格式

注意到快捷鍵欄中有一個code的下拉框,點開發現有幾個選項:

這裏介紹一下

  • Code格式就是正常的python代碼格式
  • Markdown的一個text文檔編輯格式,就像在word裏編寫一樣
  • Heading就是給Markdown的句子設置標題等級,像word的標題一,標題二...
  • Raw NBConvert 沒用過不了解,可以自行百度或者看官網介紹

下面舉例說明一下

選擇一個空的單元格,code下拉框選擇Heading,會出現一個不同類型的 cell:

改變單元格類型時彈出消息中有解釋,後面那個單元格以 # 標記開頭,意味着這是一個一級標題。如果需要子標題,可以使用以下標記表示:

# : 一級標題## : 二級標題### : 三級標題...

輸入內容後再運行一下(快捷欄裏有),會出現類似下面的情況:

我一共輸入了三級標題,點其中一個,你會發現它的code下拉欄顯示是markdown類型

你以後代碼裏print 的內容都是以markdown的格式顯示的。

E.快捷鍵

常用的快捷鍵是:

  • Ctrl + Enter: 執行單元格代碼
  • Shift + Enter: 執行單元格代碼並且移動到下一個單元格
  • Alt + Enter: 執行單元格代碼,新建並移動到下一個單元格

這幾個快捷鍵都是非常常用的。

F.歷史輸入和輸出變量

與標準 Shell 類似,IPython 中也可以通過 _ 和 _ _ 訪問上一次和上上一次的輸出。

當你寫的單元格多了,肯定會注意到,IPython 中每一次的輸入輸出都有序號。你可以通過一下方法訪問這些輸入和輸出:

  • _:訪問上一次輸出
  • __:訪問上上一次輸出
  • _X:訪問歷史 X 行輸出
  • _iX:訪問歷史 X 行輸入

其中小寫字母 “i”,代表 “in”。

四、外部功能

上面講的是jupyter 的一些使用方法和技巧,其實它還有很多強大的外部功能的,下面給大家介紹一下。

A.魔術命令

在 IPython 的會話環境中,所有文件都可以通過 %run 命令來當做腳本執行,並且文件中的變量也會隨即導入當前命名空間。

即,對於一個模塊文件,你對他使用 %run 命令的效果和 from module import * 相同

這種以 % 開頭的命令在 IPython 中被稱爲魔術命令,用於加強 shell 的功能。

常用的魔術命令有: 

%quickref顯示 IPython 快速參考
%magic顯示所有魔術命令的詳細文檔
%debug從最新的異常跟蹤的底部進入交互式調試器
%pdb在異常發生後自動進入調試器
%reset刪除 interactive 命名空間中的全部變量
%run script.py執行 script.py
%prun statement通過 cProfile 執行對 statement 的逐行性能分析
%time statement測試 statement 的執行時間
%timeit statement多次測試 statement 的執行時間並計算平均值
%who、%who_ls、%whos顯示 interactive 命名空間中定義的變量,信息級別/冗餘度可變
%xdel variable刪除 variable,並嘗試清除其在 IPython 中的對象上的一切引用
!cmd在系統 shell 執行 cmd
output=!cmd args執行cmd 並賦值
%bookmark使用 IPython 的目錄書籤系統
%cd direcrory切換工作目錄
%pwd返回當前工作目錄(字符串形式)
%env返回當前系統變量(以字典形式)

對魔術命令不熟悉的話可以通過 %magic 查看詳細文檔;對某一個命令不熟悉的話,可以通過 %cmd? 內省機制查看特定文檔

B.添加插件

1)側邊欄目錄導航

當文章內容非常長的時候,前後找內容,很麻煩,不如加一個sidebar,方便導航方法:https://github.com/ipython-contrib/IPython-notebook-extensions/tree/master/nbextensions/usability/toc2

2)隱藏代碼按鈕

有時候,希望代碼可以隱藏,這樣子文檔看起來,就會乾淨一些 

點擊按鈕,就可以隱藏所有的代碼,具體做法: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/

C.運行python文件

利用jupyter的cell是可以運行python文件的。

方法一:

  1. %run file.py  
%run file.py
方法二:在unitx command前面加入一個感嘆號“!” ,如:

  1. !python myfile.py  
!python myfile.py

D.導入外部代碼

比如有一個test.py文件,需要將其載入到jupyter的一個cell中

在需要導入該段代碼的cell中輸入

  1. %load test.py #test.py是當前路徑下的一個python文件  
%load test.py #test.py是當前路徑下的一個python文件
shift + enter運行後,%load test.py被自動加入了註釋符號#,test.py中的所有代碼都被load到了當前的cell中

或者從從網絡load代碼到jupyter

在cell中輸入%load http://.....,然後運行該cell,就會將load後面所對應地址的代碼load到當前的cell中; 


五、其他技巧

1)更改Jupyter notebook的工作空間(主目錄)

Jupyter的工作空間在其配置文件ipython_notebook_config.py中。

ipython_notebook_config.py文件在~/.jupyter/下

如果找不到那就在終端輸入:

  1. jupyter notebook --generate-config   
jupyter notebook --generate-config 
然後再
  1. gedit ~/.jupyter/jupyter_notebook_config.py  
gedit ~/.jupyter/jupyter_notebook_config.py
Ctrl + F 找到下面這句按下面的格式,輸入你想要的目錄路徑即可

  1. # The directory to use for notebooks.這決定了jupyter啓動目錄  
  2. c.NotebookApp.notebook_dir = u'/path/to/your/notebooks'  
# The directory to use for notebooks.這決定了jupyter啓動目錄
c.NotebookApp.notebook_dir = u'/path/to/your/notebooks'

2)自定義快捷鍵

這個就直接參考官方文檔吧:http://nbviewer.jupyter.org/github/ipython/ipython/blob/3.x/examples/Notebook/Custom%20Keyboard%20Shortcuts.ipynb

六、總結

總的來說,Jupyter notebook 是一款非常優秀的交互式編輯平臺,提供了分享,演示,編輯等功能.作爲學習的記錄者,方便你隨時撿起學習的進度,增量式地前進。

希望這篇博文能對剛接觸jupyter 的朋友有所幫助!


七、參考

【1】官網安裝:https://jupyter.readthedocs.io/en/latest/install.html

【2】jupyter使用小結
【3】Jupyter Notebook 快速入門(上)

【4】jupyter notebook 各種用法記錄(陸續更新)

發佈了30 篇原創文章 · 獲贊 50 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章