Jupyter notebook操做技巧

學習筆記:Jupyter notebook操做技巧

  • 1、jupyter notebook簡介、用途、優點和缺點
  • 2、 單元Cell:
  • 3、操做技巧
    • - 給Jupyter換主題
    • - 筆記本擴展(nbextensions)——高效插件
    • - Ipywidgets小工具組件
    • - Jupyter播放PPT——slide幻燈片操做
    • - Qgrid——相似Excel裏的篩選功能
    • - 嵌入連接和pdf
    • Cython
    • 經常使用魔法命令(注意是在Python kernel中適用)
  • 在pycharm中使用jupyter

 

1、jupyter notebook簡介、用途、優點和缺點

  1. 簡介
    Jupyter notebook源於Fernando Perez發起的IPython 項目
    IPython 是一種交互式shell,與普通的Python shell類似,但有些更高級的功能,例如語法高亮顯示和代碼補全,有magic操做。Jupyter notebook將IPython作成了一種開源的Web應用,容許用戶建立和共享包含代碼、方程式、可視化和文本的文檔。Jupyter這個名字是它要服務的三種語言的縮寫:Julia,Python和R,與「木星(jupiter)」諧音,事實上起名也是 Jupyter項目組對伽利略發現木星衛星時所用筆記本的致敬。
    IPython時代 ——>Jupyter Notebook時代——Jupyter Lab時代——Jupyter Hub時代
  2. 用途
    數據清理和轉換、數值模擬、統計建模、數據可視化、機器學習等等。
  3. 優點
    可選擇語言:支持超過40種編程語言,包括Python、R、Julia、Scala等。
    分享筆記本:可使用電子郵件、Dropbox、GitHub和Jupyter Notebook Viewer與他人共享。
    交互式輸出:代碼能夠生成豐富的交互式輸出,包括HTML、圖像、視頻、LaTeX等等。
    大數據整合:經過Python、R、Scala編程語言使用Apache Spark等大數據框架工具。支持使用pandas、scikit-learn、ggplot二、TensorFlow來探索同一份數據。
    ~~提供了一種人性化的REPL終端,以及文檔代碼一體化等等。
  4. 缺點
    每次啓動的時候相對繁瑣,如果啓動本地安裝的IDE,一個命令或者點擊一下圖標便可,可是jupyter notebook要進入命令行/終端,輸「jupyter notebook」,若使用的是虛擬環境,首先還要激活虛擬環境,並且啓動後它會佔用一個終端或命令行窗口,若是意外關閉則會終止jupyter notebook服務。

2、 單元Cell:

  • 兩種模式: 命令模式(Command Mode)與編輯模式(Edit Mode)。
    • 按y m切換markdown和code模式
    • 點Esc鍵或運行單元格(ctrl-enter)切換回命令模式、按Enter鍵或者雙擊cell變爲編輯狀態。
  • 四種功能: Code、Markdown、Raw NBConvert、Heading
    • Jupyter Notebook已經取消了Heading狀態,即標題單元格。取而代之的是Markdown的一級至六級標題。而Raw NBconvert目前極少用到。
      • code狀態下運行代碼
        In[ ]程序未運行
        In[num]程序運行後
        In[*]程序正在運行

3、操做技巧

經過終端打開jupyter後,保持終端不要關閉,不然會斷開與本地服務器的連接。
打開後,瀏覽器地址爲:http://localhost:8888。其中,「localhost」指的是本機,「8888」則是端口號。多打開一個則端口號+1。html

代碼狀態下 按h 跳出快捷鍵幫助
jupyter中命令以前加個「!」,便可執行shell命令。前端

- 給Jupyter換主題

pip install jupyterthemes	#安裝 jt -l #加載可用主題列表 jt -t <name of the theme> #選擇想要的主題 jt -r #恢復原來的主題 ====================================================================== 其中 <name of the theme> 包括: chesterish、grade三、gruvboxd、gruvboxl monokai、oceans1六、onedork、solarizedd、solarizedl 

- 筆記本擴展(nbextensions)——高效插件

是一種JavaScript模塊,將一系列 js 腳本嵌入到 Jupyter 中,能夠加載到筆記本前端頁面上,能夠大大提高用戶體驗。
功能包括:Hinterland跳出下拉菜單、Snippets直接插入代碼段、拆分單元格,相鄰的模式 分欄、生成目錄、 摺疊標題Collapsible Headings、Autopep8美化代碼、ExecutionTime 得到單元格執行時間
代碼(省略 咱們通常使用的%time以及基於裝飾器的計時器函數來度量函數的時間。)…python

#conda安裝nbextensions conda install -c conda-forge jupyter_nbextensions_configurator #pip安裝nbextensions 第1步:用 pip 來安裝它 pip install jupyter_contrib_nbextensions 第2步:安裝關聯的 JavaScript 和 CSS 文件 jupyter contrib nbextension install --user 

- Ipywidgets小工具組件

Ipywidgets做者:Martin Renou,QuantStack的科學軟件工程師。
Ipywidgets功能:多種的Python對象,一般在Jupyter Notebook或JupyterLab中具備可視化表示:按鈕,滑塊,文本輸入,複選框等。
詳細用法參考:https://mp.weixin.qq.com/s/9We5ovP88lAICrDKQIQKxggit

- Jupyter播放PPT——slide幻燈片操做

默認是一個單元格cell就是一張PPT
方法一: Jupyter內置PPT,View → Cell Toolbar → Slideshow,選擇子幻燈片,而後進入到ipynb文件所保存的文件夾中,路徑中輸入,則會打開.html文件即爲所須要的slidegithub

jupyter nbconvert 文件名.ipynb --to slides --post serve 

方法二: 使用RISE插件。用到reveal.js來運行PPT,能夠不退出PPT,直接運行代碼。shell

詳細參考:https://github.com/damianavila/RISE

- Qgrid——相似Excel裏的篩選功能

用pip安裝:
pip install qgrid
jupyter nbextension enable --py --sys-prefix qgrid #only required if you have not enabled the ipywidgets nbextension yet jupyter nbextension enable --py --sys-prefix widgetsnbextension 用conda安裝: #only required if you have not added conda-forge to your channels yet conda config --add channels conda-forge conda install qgrid 

- 嵌入連接和pdf

from IPython.display import IFrame IFrame('https://www.baidu.com/', width=800, height=450) #嵌入連接 IFrame('https://arxiv.org/pdf/1406.2661.pdf', width=800, height=450) #嵌入pdf 

Cython

Cython是個能用 Python 編譯 C 語言的程序包,這也是 Numpy 和 Pandas 運行快的主因。
經過pip install cython 安裝 Cython,會發如今沒有更改任何代碼的狀況下,性能立馬提升了兩倍編程

經常使用魔法命令(注意是在Python kernel中適用)

基於IPython內核,Jupyter能夠訪問IPython內核中的全部Magics。瀏覽器

%lsmagic	顯示全部magic方法
%:			行魔法函數,只對本行代碼生效。
%%:		Cell魔法函數,在整個Cell中生效,必須放於Cell首行。
%lsmagic:	列出全部的魔法函數
%magic		查看各個魔法函數的說明
?後面加上魔法函數名稱,能夠查看該函數的說明

%run 用來運行代碼腳本
%timeit 測試單行語句的執行時間
%%timeit 測試整個單元中代碼的執行時間——使用Python timeit模塊 ,該模塊運行一條語句100,000次(默認狀況下),而後提供最快的三次平均值。
% matplotlib inline 顯示 matplotlib 包生成的圖形
%%writefile 寫入文件
%pdb 調試程序		(Jupyter 本身的調試界面The Python Debugger (pdb))
%pwd 查看當前工做目錄
%ls 查看目錄文件列表
%reset 清除所有變量
%who 查看全部全局變量的名稱,若給定類型參數,只返回該類型的變量列表
%whos 顯示全部的全局變量名稱、類型、值/信息
%xmode Plain 設置爲當異常發生時只展現簡單的異常信息
%xmode Verbose 設置爲當異常發生時展現詳細的異常信息
%debug bug調試,輸入quit退出調試
%env 列出所有環境變量

Pdb中可以使用的命令見連接(https://docs.python.org/3.5/library/pdb.html#debugger-commands)服務器

Jupyter notebook 和 Jupyter lab 的區別
notebook 打開的只是單個文件的執行文件,而 lab 至關於打開了一個內置的編輯器,能夠對目錄內的全部文件進行操做,而且內置了 python 的調試和終端.
Jupyterlab 的基本理念是將經典 notebook 中的全部功能以及新特性整合在一塊兒。markdown

http://www.dtmao.cc/news_show_715227.shtml

相關文章
相關標籤/搜索