Jupyter Notebook 優化:提示、技巧和擴展 | 翻譯徵文 | 雷鋒字幕組

 本文為雷鋒字幕組「觸摸世界前沿科技 | 翻譯徵文 」活動收錄稿件

Jupyter Notebook 優化:提示、技巧和擴展

01

Jupyter Notebooks 是機器學習和數據科學社區廣泛使用的基於Web的交互式工具,其一般在在線課程中作為一個報告工具或者高度複雜的學習材料,來用於快速測試。

在這篇博客中,我將列舉一些關於Jupyter Notebooks快捷鍵、魔法命令和插件。

快捷鍵

按快捷鍵 Ctrl + Shift + p或者着點擊菜單欄中的小鍵盤圖標,可以得到一些命令的快捷鍵列表。

命令和編輯模式下的快捷鍵:

  • Shift + Enter 運行當前的單元格(Cell),選擇下一個單元格

  • Ctrl + Enter 運行選擇的單元格

  • Alt + Enter 運行當前的單元格,並在下方插入

  • Ctrl + S 保存並檢查點

02

編輯模式下的快捷鍵:

  • Esc 進入命令模式

  • Tab 代碼補全或縮進

  • Shift + Tab 工具提示

  • Ctrl + ] 向後縮進

  • Ctrl + [ 向前縮進

  • Ctrl + A 全選

  • Ctrl + Z 撤銷

  • Ctrl + Shift + Z 或者 Ctrl + Y 重做

  • Ctrl + Home 回到單元起始位置

  • Ctrl + End 回到單元的結尾位置

  • Ctrl + Left 回到單詞的左側

  • Ctrl + Right 回到單詞右側

在命令模式下,按 H (help) 可以得到快捷鍵的列表:

03

下面我列出一些最常使用的快捷鍵。首先按 Esc 以確保你在命令模式下:

  • 通過按上、下鍵來上下滾動單元格

  • 按 A 或者 B 在當前活動單元格上方或下方插入新單元格

  • M 將活動單元格轉換為 Markdown 單元格

  • X 剪切選擇的單元格

  • 拷貝選擇的單元格

  • V 粘貼拷貝或剪切的單元格

  • Shift + V 粘貼上方的單元格

  • S 保存筆記本

  • F 查找 / 替換

  • O 切換輸出

  • D + D 按D兩次會刪除活動單元格

  • Z 撤銷單元刪除操作

  • 按住 Shift,再按上或者下鍵,可以一次選擇多個單元

  • Shift + Space 向上滾動筆記本

  • Space 向下滾動筆記本

04

當多個單元格選中時:

  • 按 Shift + M 合併選中的單元格

  • 在編輯模式下按 Ctrl + Shift + - 從光標處分割活躍單元格

  • 在單元格的左側邊緣按Shift + Click 可以選中單元格

在筆記本之間拷貝複製單元格:

  • 筆記本1:按住 Shift 鍵選中多個單元格,然後按 Ctrl + C 拷貝選中的單元格

  • 筆記本2:按 Esc 進入命令模式,再按 Ctrl + V 來粘貼

使用命令 ! pip install 在當前內核安裝包

通過在變量前面前置 符號可以在 shell 命令中使用 Python 變量:

05

魔術命令

魔術命令是能夠顯著提升筆記本能力的快捷鍵。

從筆記本中分享代碼示例:

1. 使用 %pastebin魔術函數來選擇一個範圍內的單元格

2. Jupyter 會返回你一個用於分享的秘密鏈接

注意:分享鏈接會在7天後過期

使用 %whos 或 %who_ls可以得到已經定義的變量的列表

06

  • %whos 展示變量類型和其他諸如大小、內容等信息

  • %who_ls 只展示變量的名字

在 Jupyter Notebook 中處理外部文件:

  • %pycat file.py 打開腳本

  • %load file.py 將腳本插入一個單元格

  • %run file.py 運行腳本

  • %run file.ipynb 運行notebook

  • %notebook filename 將當前 IPython 歷史導出到一個notebook文件

獲取、設置、列出環境變量:

  • %env 列出所有環境變量

  • %env var 獲取變量var的值

  • %env var val 將變量var設為值val

07

在 shell 中運行命令:

%system  =>  使用shell (大部分時候用來獲取當前路徑、日期等)

使用 %autosave 來自動保存筆記本到檢查點

上面語句即每隔120秒自動保存一次。

執行不同的編程語言:

  • %%HTML  => 運行HTML代碼

      

  • %%perl     => 在子過程運行Perl代碼

  • %%javascript 或者 %%js  => 運行Javascript代碼塊

  • %%python3  => 在子過程中使用python3運行代碼

  • %%ruby   => 運行Ruby代碼

其他魔法命令:

  • %history =>  打印歷史輸入

  • %lsmagic  => 列出當前可以使用的魔法函數

  • %magic  => 打印魔法函數系統的信息

  • %matplotlib  => 設置matplotlib以支持交互工作

  • %pwd  => 返回當前工作路徑

  • %quickref  => 展示快捷引用表

  • %time  => 一個Python申明或表達式的運行時間 (可以作為一個行或單元格魔法)

08

nbextensions

這些插件的好處是可以改變默認設置。

在 Anaconda Prompt 中執行下面命令便可以安裝插件:

conda install -c conda-forge jupyter_contrib_nbextensions
conda install -c conda-forge jupyter_nbextensions_configurator

或者還可以通過 pip 安裝

  • pip show jupyter_contrib_nbextensions  

  • 運行 pip show jupyter_contrib_nbextensions 可以找到插件的安裝位置

  • 運行 jupyter contrib nbextensions install 可以安裝新插件

安裝完成後,重啟 Jupyter notebook,這時可以看到新的 Nbextensions 工具欄已經被加到菜單。


相同的插件在編輯菜單中也有:

09

下面看一些插件

1. Hinterland – 該插件使得在代碼單元格中每次按鍵後會自動進行代碼補全,而不僅僅在按下tab鍵才進行補全

2. Split Cells Notebook – 允許在筆記本中切分單元格

進入命令模式 (Esc),使用 Shift + S 來切換單元格切分還是合併

3. Table of Contents  – 該插件可以收集所有的運行頭並將其作為側邊欄展示在浮動窗口中或者在導航菜單中。該擴展可以拖動、縮放、收起、停靠且能夠通過唯一的鏈接ID自動編號,有一個可選的目錄單元格。

4. Autopep8 – 使用內核代碼來格式化單元格代碼內容

5. Snippets – 加入一個下拉菜單來在當前notebook中插入代碼片段單元格

10

Jupyter Notebook 主題

我們可以將 Jupyter Notebook 默認的主題改為黑暗模式。

為了實現這點,我們需要安裝 jupyterthemes :

jt -l 可以展示出可用的主題列表:

jt -t   能夠更換主題。讓我們快來試試使用 chesterish 主題來切換成黑暗模式。

jt -r 可以還原到默認主題。

原文鏈接://www.yanxishe.com/TextTranslation/2017

 本文為雷鋒字幕組「觸摸世界前沿科技 | 翻譯徵文 」活動收錄稿件

Tags: