1. 程式人生 > >Jupyter Notebook各種使用方法記錄

Jupyter Notebook各種使用方法記錄

Jupyter notebook )前身為IPython Notebook,學習時,可以找兩者的教程

一、 Jupyter NoteBook的安裝

1.1 新版本Anaconda自帶Jupyter

  • 目前,最新版本的Anaconda是自帶Jupyter NoteBook的,不需要再單獨安裝 image_1b4e5l3s6r5i18ok1rnd195i1u549.png-31.6kB

1.2 老版本Anacodna需自己安裝Jupyter

  • 安裝Jupyter Notebook的先決條件:已經安裝了python(python 2.7 或者是python3.3)

  • 具體的安裝方法:

  • 官方建議利用Anaconda安裝Jupyter
  • 安裝完成Anaconda後,如果該Anaconda並不自帶Jupyter Noterbook,那麼,開啟cmd,輸入:conda install jupyter
  • 這樣安裝完的jupyter不具有New a terminal的功能 經過各種查詢才知道,原來是因為windows不具有terminal需要的TTY,所以,windows下的jupyter是不支援Terminal模式的,而且短期內也沒有增加這種支援的計劃

  • 這裡寫圖片描述

    二、 更改Jupyter notebook的工作空間

    2.1 方式一

    “”不是每次都好用“”

    在其配置檔案ipython_notebook_config.py中,有如下一句

    # The directory to use for notebooks and kernels.
    # c.NotebookApp.notebook_dir = u''
    
    • 1
    • 2
    • 3

    該句就是用來指定其工作空間的,例如,預設的工作空間是:使用者名稱資料夾,例如,現在想要將工作空間變為D:\Jupyter,那麼,需要做如下更改(要記得刪掉註釋#)

    # The directory to use for notebooks and kernels.
    c.NotebookApp.notebook_dir = u'D:\Jupyter'
    
    • 1
    • 2
    • 3

    注意:路徑最後一級後面不要加符號“\”

    如何找到該配置檔案?

    • 在cmd中輸入jupyter notebook --generate-config
    • 如果該配置檔案已經存在,那麼,會出現如下資訊,從中可以見到配置檔案存在的位置,注意,此時,輸入N,不要overwrite image_1b4e641ot340t3g1asfdv81972m.png-16.9kB
    • 如果該配置檔案不存在,那麼,將會初始化產生一個配置檔案

    在cmd中輸入:ipython profile create 可以找到關於jupyter的配置檔案的位置

    2.2 方式二絕招(絕招)

    • 進入工作目錄資料夾
    • 鍵盤Shift+滑鼠右鍵->在此處開啟命令視窗-> 在彈出的命令視窗中輸入:Jupyter Notebook 這裡寫圖片描述 這裡寫圖片描述

    • Jupyter被開啟,定位到當前目錄! 這裡寫圖片描述

    三、Jupyter的各種快捷鍵

    • 執行當前cell,並自動跳到下一個cell:Shift Enter

    • 執行當前cell,執行後不自動調轉到下一個cell:Ctrl-Enter

    • 是當前的cell進入編輯模式:Enter

    • 退出當前cell的編輯模式:Esc

    • 刪除當前的cell:雙D

    • 為當前的cell加入line number:單L

    • 將當前的cell轉化為具有一級標題的maskdown:單1

    • 將當前的cell轉化為具有二級標題的maskdown:單2

    • 將當前的cell轉化為具有三級標題的maskdown:單3

    • 為一行或者多行新增/取消註釋:Crtl /

    • 撤銷對某個cell的刪除:z

    • 瀏覽器的各個Tab之間切換:Crtl PgUpCrtl PgDn

    • 快速跳轉到首個cell:Crtl Home

    • 快速跳轉到最後一個cell:Crtl End

    四、Jupyter Notebook如何匯入程式碼

    即匯入程式碼到jupyter notebook的cell中

    4.1 將本地的.py檔案load到jupyter的一個cell中

    問題背景:有一個test.py檔案,需要將其載入到jupyter的一個cell中 test.py內容如下:

    import caffe
    SolverName = "/root/workspace"
    sovler = caffe.AdamSolver(SolverName)
    • 1
    • 2
    • 3

    方法步驟: (1)在需要匯入該段程式碼的cell中輸入

    %load test.py #test.py是當前路徑下的一個python檔案
    • 1

    這裡寫圖片描述

    (2)執行該cell 利用快捷鍵“Shift+Enter”,可以看到如下結果: 這裡寫圖片描述

    (3)可以看到,執行後,%load test.py被自動加入了註釋符號#,test.py中的所有程式碼都被load到了當前的cell中

    4.2 從網路load程式碼到jupyter

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

    • 首先,在想要匯入該段程式碼的cell中輸入

    %load test.py #test.py是當前路徑下的一個python檔案
    • 1
  • 然後,Shift+Enter執行,可以看到如下結果: 利用load匯入python檔案 可以看到,執行後,%load test.py被自動加入了註釋符號#,test.py中的所有程式碼都被load到了當前的cell中

  • 五、Jupyter執行python檔案

    • 利用jupyter的cell是可以執行python檔案的,即在cell中執行如下程式碼:
    %run file.py
    • 1

    file.py為要執行的python程式,結果會顯示在該cell中 這裡寫圖片描述 這裡寫圖片描述

    六、Jupyter一些其他瑣碎用法

    6.1 jupyter的cell可以作為unix command使用

    具體方法為:在unitx command前面加入一個感嘆號“!”

    例子: 檢視python版本:!python --version 執行python檔案:!python myfile.py

    6.2 Magic functions

    6.3 獲取current working directory

    即當前執行的程式碼所在的路徑 具體方法:current_path = %pwd 這樣得到的current_path就是當前工作路徑的字元轉

    6.4 使用Matplotlib繪圖

    在Jupyter Notebook中,如果使用Matplotlib繪圖,有時是彈不出影象框的,此時,可以在開頭加入

    %matplotlib inline
    • 1

    七、Jupyter中的Markdown

    7.1 在jupyter中設定link,需要設定兩部分:

    • 要跳到的位置(the destination) 需要在要跳轉到的位置新增下面語句:

    <a id='the_destination'></a>
    • 1

    這裡的id取值任意賦值,下面在新增連結時要用

  • 需要新增連結的文字(an internal hyperlink to the destination),即點選該處可以跳轉到the destination,在需要新增連結的文字後面加入:

  • [需要新增連線的文字](#the_destination)
    • 1
  • 下面是一個例子: 原始碼: 這裡寫圖片描述 效果圖: 這裡寫圖片描述

  • 7.2 為Jupyter Notebook新增目錄功能

    • 原始的Jupyter是不支援markdown新增目錄功能的
    • 具體方法:
      • 利用Anaconda安裝Jupyter Notebook extensions conda install -c conda-forge jupyter_contrib_nbextensions image_1b4e9lcot1eo9ing1kk19l3t2713.png-71.7kB
      • 開啟Jupyter Notebook,在它的(新增的)Nbextensions標籤下勾選“Table of Contents(2)” image_1b4ea0o2i1jofnhlu1avj53jl9.png-105.3kB
      • 開啟一個.jpynb檔案,發現,目錄功能可用了! image_1b4ea6tov2ld1pckpnlujf4g513.png-101kB
    				<script>
    					(function(){
    						function setArticleH(btnReadmore,posi){
    							var winH = $(window).height();
    							var articleBox = $("div.article_content");
    							var artH = articleBox.height();
    							if(artH > winH*posi){
    								articleBox.css({
    									'height':winH*posi+'px',
    									'overflow':'hidden'
    								})
    								btnReadmore.click(function(){
    									articleBox.removeAttr("style");
    									$(this).parent().remove();
    								})
    							}else{
    								btnReadmore.parent().remove();
    							}
    						}
    						var btnReadmore = $("#btn-readmore");
    						if(btnReadmore.length>0){
    							if(currentUserName){
    								setArticleH(btnReadmore,3);
    							}else{
    								setArticleH(btnReadmore,1.2);
    							}
    						}
    					})()
    				</script>
    				</article>