Jupyter Notebook 的 28 個技巧(下)

2021-03-02 Python中文社區

我們繼續接著上篇文章進行,分享後面的 14 條實用小技巧。

15. IPython Magic - 高解析度的圖形輸出

IPython 的魔術命令只需要一行代碼,就可以讓你的圖形輸出在 Retina 屏幕(例如新款的 MacBook)上獲得雙倍的精度。「注意:下面這個例子在非 Retina 的屏幕上不會生效」

x = range(1000)
y = [i ** 2 for i in x]
plt.plot(x,y)
plt.show();

%config InlineBackend.figure_format ='retina'
plt.plot(x,y)
plt.show();

16. 抑制函數的輸出內容

有時候在最後一行抑制函數的輸出是很方便的,例如在繪圖時。要實現整個目標,你只需要在最後添加一個分號就可以。

%matplotlib inline
from matplotlib import pyplot as plt
import numpy
x = numpy.linspace(0, 1, 1000)**1.5

# 這樣執行會得到下面的輸出和圖形。
plt.hist(x)

(array([ 216., 126., 106., 95., 87., 81., 77., 73., 71., 68.]), array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ]),
<a list of 10 Patch objects>)

# 通過添加一個分號在後面,就可以抑制這段輸出。
plt.hist(x);

17. 執行 shell 命令

從你的 notebook 中執行 shell 命令是很簡單的。你可以直接使用下面的命令去檢查當前文件夾中可用的數據集:

!ls *.csv

nba_2016.csv titanic.csv pixar_movies.csv whitehouse_employees.csv

或者去檢查和管理包。

!pip install numpy !pip list | grep pandas

Requirement already satisfied (use --upgrade to upgrade): numpy in /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages pandas (0.18.1)

18. 使用 LaTeX 編輯公式

當你在一個 Markdown 的塊中寫 LaTeX 代碼時,它可以使用 MathJax 渲染成目標公式。

這個:

$P(A \mid B) = \frac{P(B \mid A)P(A)}{P(B)}$

將會變成這個:

jupyter-notebook-latex

Markdown 在 notebook 中是很重要的一部分內容,所以不要忘記去使用它豐富的表現能力。

19. 在 notebook 中使用不同的內核運行代碼

只要你想,你就可以將不同內核上的代碼結合到一個 notebook 中來。

你只需要在每個代碼的開始處使用 IPython 的魔術命令,命令內容為你想要使用的內核的名稱。

%%bash
for i in {1..5}
do echo "i is $i"
done

i is 1
i is 2
i is 3
i is 4
i is 5

20. 為 Jupyter 安裝其它內核

Jupyter 有一個非常好的特性就是可以為不同語言運行內核。舉個慄子,下面就是如何去安裝和運行 R 內核。

簡單選項:使用 Anaconda 安裝 R

如果你是使用 Anaconda 來管理你的環境,那麼安裝 R 就是很簡單的事情。只需要運行下面的代碼就可以:

conda install -c r r-essentials

複雜選項:手動安裝 R 內核

如果你沒有使用 Anaconda,這個過程會略微複雜一點。首先,如果你沒有安裝 R 的話先從 CRAN 中安裝 R。

完成上面的安裝後,啟動 R 控制臺並運行下面的命令:

install.packages(c('repr', 'IRdisplay', 'crayon', 'pbdZMQ', 'devtools'))
devtools::install_github('IRkernel/IRkernel')
IRkernel::installspec() # to register the kernel in the current R installation

21. 在同一個 notebook 中同時運行 R 和 Python

最好的解決方案就是安裝 rpy2(還需要一個 R 的工作版本),具體實現可以用 pip 很輕鬆的完成:

pip install rpy2

你可以同時使用兩種語言,甚至在內部傳遞變量:

%load_ext rpy2.ipython

%R require(ggplot2)

array([1], dtype=int32)

import pandas as pd 
df = pd.DataFrame({
'Letter': ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c'],
'X': [4, 3, 5, 2, 1, 7, 7, 5, 9],
'Y': [0, 4, 3, 6, 7, 10, 11, 9, 13],
'Z': [1, 2, 3, 1, 2, 3, 1, 2, 3]
})

%%R -i df ggplot(data = df) + geom_point(aes(x = X, y= Y, color = Letter, size = Z))

實例出處 「Revolutions Blog[1]」

22. 用另外一種語言寫函數

有時候 numpy 的速度還是不太夠,我需要去寫一些更快的代碼。

原則上,你可以在動態庫中編譯函數並編寫 python 裝飾器...

但是當這個無聊的部分已經為你完成時,是不是會感覺非常棒?

你可以在 cython 或者 fortran 中寫你的函數,然後直接在 python 代碼中使用它們。

首先,你需要安裝:

!pip install cython fortran-magic

%load_ext Cython

%%cython
def myltiply_by_2(float x):
return 2.0 * x

myltiply_by_2(23.)

我個人比較喜歡使用 fortran,因為當寫一些數字運算的函數時非常方便。更多的fortran使用細節[2]你可以在這裡查閱。

%load_ext fortranmagic

%%fortran subroutine compute_fortran(x, y, z)
real, intent(in) :: x(:), y(:)
real, intent(out) :: z(size(x, 1))
z = sin(x + y)
end subroutine compute_fortran

compute_fortran([1, 2, 3], [4, 5, 6])

同樣還有一些其它系統方法可以加速你的 python 代碼。更多的例子點擊這裡查看:加速python細節[3]。

23.  多行光標操作

Jupyter 支持多光標操作,類似於 Sublime Text。按下 Alt 鍵的同時,直接點擊並拖動滑鼠選取。

多行光標操作24. Jupyter-contrib extensions

Jupyter-contrib extensions[4] 是一個擴展包集合,給 Jupyter 提供了更多的功能,例如包括拼寫檢查和代碼格式。

下面的命令將會安裝擴展包,和一個基於菜單的配置程序,幫助你在 Jupyter 的主屏幕瀏覽和啟動擴展包。

!pip install https://github.com/ipython-contrib/jupyter_contrib_nbextensions/tarball/master !pip install jupyter_nbextensions_configurator !jupyter contrib nbextension install --user !jupyter nbextensions_configurator enable --user

nbextensions 配置程序25. 從 Jupyter notebook 創建一個展示結果

Damian Avila 的作品 RISE[5] 可以讓你從已有的 notebook 中創建一個 PPT 風格的展示結果。

你可以使用 conda 安裝 RISE:

conda install -c damianavila82 rise

或者換成 pip 安裝:

pip install RISE

然後運行下面的命令來安裝和啟用這個擴展包:

jupyter-nbextension install rise --py --sys-prefix jupyter-nbextension enable rise --py --sys-prefix

26. Jupyter 的輸出系統

notebook 顯示為 HTML,並且代碼塊的輸出也可以是 HTML,因此你可以在輸出時返回任何結果:視頻/音頻/圖片。

在這個例子中,我掃描了倉庫中包含圖片的一個文件夾,並且展示了前五幅縮略圖:

import os
from IPython.display import display, Image 
names = [f for f in os.listdir('../images/ml_demonstrations/') if f.endswith('.png')]
for name in names[:5]:
 display(Image('../images/ml_demonstrations/' + name, width=100))

我們可以用 bash 命令創建一個同樣的 list,因為魔術命令和 bash 調用返回 python 變量:

names = !ls ../images/ml_demonstrations/*.png names[:5]

['../images/ml_demonstrations/colah_embeddings.png',
'../images/ml_demonstrations/convnetjs.png',
'../images/ml_demonstrations/decision_tree.png',
'../images/ml_demonstrations/decision_tree_in_course.png',
'../images/ml_demonstrations/dream_mnist.png']

27. 大數據分析

有許多方法在查詢/處理大數據時是可用的:

ipyparallel (以前的 ipython 集群)[6] 在處理 python 中的 map-reduce 操作時,是一個很好的選擇。我們在 rep[7] 中使用它並行訓練機器學習模型。28. 分享 notebook

分享你的 notebook 最簡單的方法就是使用 notebook 文件(.ipynb),但是對那些不使用 Jupyter 的人來說,你仍然有一些其它選擇:

使用 File > Download as > HTML 菜單選項來將你的 notebook 轉化為 HTML 文件。上傳你的 .ipynb 文件到 Google Colab[10]。以 gists 的形式分享你的 notebook 文件或者上傳到 GitHub,無論哪種方式都可以渲染你的 notebook。看這個 git 分享的例子[11]。如果你選擇將 notebook 上傳到 GitHub 上,你可以使用 mybinder[12] 服務來允許某人有權限訪問你的倉庫。利用 jupyterhub[13] 來設置你自己的系統,當你有一個微課或者講座,但是沒有時間去關注學生的機器狀況時,這是一個很方便的方法。把你的 notebook 保存起來(例如 dropbox),然後把連結放到 nbviewer[14]。無論你保存的主機是什麼,nbviewer 都會渲染你的 notebook。使用 File > Download as > PDF 菜單選項來將你的 notebook 保存為一個 PDF。如果你選擇這種路線,那我強烈建議你閱讀一下這篇 Julius Schulz 的優秀文章:Making publication ready Python notebooks[15]。Reference[1]

Revolutions Blog: http://blog.revolutionanalytics.com/2016/01/pipelining-r-python.html

[2]

fortran使用細節: http://arogozhnikov.github.io/2015/11/29/using-fortran-from-python.html

[3]

加速python細節: http://arogozhnikov.github.io/2015/09/08/SpeedBenchmarks.html

[4]

Jupyter-contrib extensions: https://github.com/ipython-contrib/jupyter_contrib_nbextensions

[5]

RISE: https://github.com/damianavila/RISE

[6]

ipyparallel (以前的 ipython 集群): https://github.com/ipython/ipyparallel

[7]

rep: https://github.com/yandex/rep

[8]

pyspark: http://www.cloudera.com/documentation/enterprise/5-5-x/topics/spark_ipython.html

[9]

%%sql: https://github.com/jupyter-incubator/sparkmagic

[10]

Google Colab: https://colab.research.google.com/notebooks/intro.ipynb

[11]

git 分享的例子: https://github.com/dataquestio/solutions/blob/master/Mission202Solution.ipynb

[12]

mybinder: http://mybinder.org/

[13]

jupyterhub: https://github.com/jupyterhub/jupyterhub

[14]

nbviewer: http://nbviewer.jupyter.org/

[15]

Making publication ready Python notebooks: http://blog.juliusschulz.de/blog/ultimate-ipython-notebook

相關焦點

  • Jupyter Notebook 的 28 個技巧(上)
    原文地址:https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/今天為大家分享一篇文章,總結了 28 個 Jupyter 中的實用技巧,本篇文章是上篇,為大家介紹了前 14 條,希望大家可以讓 Jupyter 成為你的一大助力。
  • Jupyter Notebook 使用小技巧
    數據科學愛好者 Shadab Hussain 分享了 Jupyter Notebook 使用的一些小技巧。所以在這個博客裡,我要列出一些關於它的快捷方式,魔術命令和 nbextensions。Shift + Space 向上滾動 notebookSpace 向下滾動 notebook選定多個 cell 時:按 Shift + M 合併所選內容要在光標處拆分活動 cell,請在 edit 模式下按 Ctrl + Shift + -你也可以單擊並按住 Shift 鍵並在 cell 左側的空白處單擊以進行選擇不同 notebook 之間 cell 的複製和粘貼:Notebook
  • 15個應該掌握的Jupyter Notebook 使用技巧
    使用進度條設置,具體操作如下:首先,安裝tqdm庫:在cmd命令窗口輸入pip3 install tqdm或者直接在jupyter notebook單元內輸入!pip install tqdm。然後,通過以下命令生成進度條:3.
  • 上手jupyter notebook神器
    安裝完成後,直接在終端執行 jupyter notebook 或 jupyter lab 命令啟動。現在用前面生成的配置文件jupyter_notebook_config.py,工作目錄就在這個裡面進行修改。
  • jupyter notebook在線平臺和教程
    jupyter logo很多同學都在了解學習python過程中,都聽過jupyter和jupyter notebook的大名,但默認的python安裝是不包含jupyter的,因此很多人還不了解jupyter是幹什麼用的
  • Jupyter NoteBook 安裝以及常用配置
    環境下,多Python版本管理是個非常蛋疼的事情。命令行啟動在命令行中輸入jupyter notebook這個就使用了我之前設置的啟動目錄,所以我一般用命令行啟動,比較好控制啟動目錄。3. 啟動並臨時設置工作目錄jupyter notebook .
  • 為jupyter notebook添加目錄(Jupyter安裝拓展nbextensions)
    notebook吧,現在的我算是半個jupyter notebook的愛好者吧,主要是它可以與markdown結合,將前言信息、分析用的code、圖表、展現的結論等信息都可以即時記錄,不用多個文檔間切換記錄。
  • Jupyter Notebook介紹、安裝及配置教程
    :PS如果失敗說明jupyter的環境變量沒有配置或者python -m IPython notebook還有(啟動服務但不打開瀏覽器)jupyter notebook --no-browser執行命令之後,在終端中將會顯示一系列
  • 大神教小白搭建Jupyter Notebook環境
    在Pycham中只能運行一共py文件,而在Jupyter notebook可以運行一行代碼就可以了。2 、環境搭建你可以直接是通過 pip 命令安裝。pip install jupyter你也可以下載anaconda3、 conda常見命令conda不僅可以方便安裝,更新,卸載工具包,而且安裝時能自動安裝相應的依賴包。
  • 快速入門 Jupyter notebook
    運行 Jupyter在 Windows,可以通過添加到開始菜單的快捷方式運行 Jupyter ,當然也可以通過在命令行輸入命令 jupyter notebook 開始運行,然後會在默認瀏覽器中打開一個新的窗口,窗口內容如下:
  • 一款容易上手jupyter notebook神器
    安裝完成後,直接在終端執行 jupyter notebook 或 jupyter lab 命令啟動。現在用前面生成的配置文件jupyter_notebook_config.py,工作目錄就在這個裡面進行修改。
  • 樹莓派打造python在線編程工具Jupyter Notebook
    樹莓派安裝docker以及簡單使用這次介紹一個python在線ide工具jupyter Notebook,也是用docker安裝的。安裝jupyter notebook,整體上還是很簡單的就是,就是設置密碼有一個小坑。
  • Jupyter Notebook作圖教程
    Jupyter Notebook和模塊安裝Jupyter Notebook的運行依賴Python環境,可以支持window和Linux下,我們建議使用最新的Python 3.6版本,在安裝Python 3.6和pip包管理器之後就可以通過pip安裝:pip install jupyter
  • 15個能使你工作效率翻倍的Jupyter Notebook的小技巧
    本文旨在分享一些很酷的技巧和技巧,幫助您在使用Jupyter Notebook的同時提高效率。了解如何從Jupyter Notebook執行終端命令,通過隱藏輸出加快速度,向Jupyter Notebook添加其他功能,等等!
  • jupyter notebook 一個編程交互式的記事本
    好奇計算機語言,近期想學一些東西,想要留下一些記錄什麼的供自己以後翻閱,想想還是將每日所操作的記錄下來:在利用python進行大數據分析一書中看到了jupyter這個工具,就照著做了,感覺還可以可以代替繼承的開發環境,對於感興趣的來說新奇有夠用
  • Python安裝Jupyter Notebook配置使用教程
    通過 pip 安裝:pip install jupyter安裝成功提示有:jupyter、jupyter-client、jupyter-console、jupyter-core。配置Jupyter notebook目錄路徑安裝完成先不要啟動,先配置目錄路徑。要不然默認打開和保存Jupyter notebook文件目錄在C盤。
  • Python學習|Anaconda、Jupyter Notebook、pycharm安裝使用詳解
    6.2 jupyter notebook 使用6.2.1 打開 jupyter notebook打開 Anaconda prompt ,輸入 jupyter notebook(不要直接在開始菜單文件夾那裡點擊 Jupyter Notebook 打開)
  • Jupyter Notebook 的這些tips你了解嗎?
    今天,小編就將帶大家探索一下Jupyter Notebook的小技巧,幫助大家提升戰鬥力。如果大家對Jupyter Notebook的使用還不是很熟悉,還可以參考我們在b站的講解視頻↓↓↓下面我們進入正題~1.打開指定目錄通常我們在使用Jupyter Notebook時,如果想打開在其他目錄下的文件就需要一一upload。
  • Jupyter Notebook——也許你總在使用她,但也許你從未嘗試過去了解她?
    點擊這裡你可以查看jupyter notebook支持的所有語言分享便捷:可以使用電子郵件、Dropbox、GitHub和Jupyter Notebook Viewer與他人共享。Notebook的使用在安裝好jupyter notebook後你可以選擇以下兩種方式來打開:關於打開jupyter notebook的一些注意事項:在使用Jupter notebook過程中,不要關閉終端。
  • Jupyterlab:超強的下一代Jupyter Notebook
    JupyterLab是 Project Jupyter的下一代用戶界面,提供所有熟悉的經典Jupyter筆記本構建模塊(Notebook,終端,文本編輯器,文件瀏覽器,豐富的輸出等),還有靈活而強大的用戶界面。