Jupyter Notebook(此前被稱為 IPython notebook)是一個交互式筆記本论衍,支持運行 40 多種編程語言奶是。在本文中楣责,我們將介紹 Jupyter notebook 的主要特性顷蟆,以及為什么對于希望編寫漂亮的交互式文檔的人來說是一個強(qiáng)大工具。
在開始使用 notebook 之前腐魂,我們先需要安裝該庫帐偎。你可以在
Jupyter 官網(wǎng)上找到完整的步驟。
一蛔屹、安裝Jupyter
新版本Anaconda自帶Jupyter
目前削樊,最新版本的Anaconda是自帶Jupyter NoteBook的,不需要再單獨安裝
老版本Anacodna需自己安裝Jupyter
- 安裝Jupyter Notebook的先決條件:已經(jīng)安裝了python(python 2.7 或者是python3.3)
- 具體的安裝方法:
- 官方建議利用Anaconda安裝Jupyter
- 安裝完成Anaconda后兔毒,如果該Anaconda并不自帶Jupyter Noterbook漫贞,那么,打開cmd育叁,輸入:
conda install jupyter
-
這樣安裝完的jupyter不具有New a terminal的功能
經(jīng)過各種查詢才知道迅脐,原來是因為windows不具有terminal需要的TTY,所以豪嗽,windows下的jupyter是不支持Terminal模式的谴蔑,而且短期內(nèi)也沒有增加這種支持的計劃
二、更改Jupyter notebook的工作空間
如何找到該配置文件
在cmd中輸入
jupyter notebook --generate-config
-
如果該配置文件已經(jīng)存在龟梦,那么隐锭,會出現(xiàn)如下信息,從中可以見到配置文件存在的位置,注意计贰,此時钦睡,輸入N,不要overwrite
?
在其配置文件ipython_notebook_config.py中躁倒,有如下一句
# The directory to use for notebooks and kernels.
# c.NotebookApp.notebook_dir = u''
簡單使用
簡單的操作符
2**2
4
常用快捷鍵
- 執(zhí)行當(dāng)前cell荞怒,并自動跳到下一個cell:
Shift Enter
- 執(zhí)行當(dāng)前cell,執(zhí)行后不自動調(diào)轉(zhuǎn)到下一個cell:
Ctrl-Enter
- 是當(dāng)前的cell進(jìn)入編輯模式:
Enter
- 退出當(dāng)前cell的編輯模式:
Esc
- 刪除當(dāng)前的cell:雙D
- 為當(dāng)前的cell加入line number:單L
- 將當(dāng)前的cell轉(zhuǎn)化為具有一級標(biāo)題的maskdown:單1
- 將當(dāng)前的cell轉(zhuǎn)化為具有二級標(biāo)題的maskdown:單2
- 將當(dāng)前的cell轉(zhuǎn)化為具有三級標(biāo)題的maskdown:單3
- 為一行或者多行添加/取消注釋:
Crtl /
- 撤銷對某個cell的刪除:
z
- 瀏覽器的各個Tab之間切換:
Crtl PgUp
和Crtl PgDn
- 快速跳轉(zhuǎn)到首個cell:
Crtl Home
- 快速跳轉(zhuǎn)到最后一個cell:
Crtl End
多行操作同樣支持
for i in range(5):
print(i)
0
1
2
3
4
你還可以使用 LaTex 來生成數(shù)學(xué)公式
$$\int_0^{+\infty} x^2 dx$$
$$\int_0^{+\infty} x^2 dx$$
導(dǎo)出功能
notebook 還有一個強(qiáng)大的特性秧秉,就是其導(dǎo)出功能褐桌。可以將 notebook 導(dǎo)出為多種格式:
- HTML
- markdown
- ReST
- raw python
Matplotlib 集成
如果你用 Python 繪制過圖形福贞,那你肯定知道 matplotlib撩嚼。Matplotlib 是一個用于創(chuàng)建漂亮圖形的 Python 庫,結(jié)合 Jupyter notebook 使用時體驗更佳挖帘。
要想在 Jupyter notebook 中使用 matplotlib完丽,需要告訴 Jupyter 獲取 matplotlib 生成的所有圖形,并將其嵌入 notebook 中拇舀。為此逻族,需要計算:
%matplotlib inline
為了執(zhí)行成功你可能需要首先安裝matplotlibpip installl matplotlib
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(20)
y = x**2
plt.plot(x, y)
[<matplotlib.lines.Line2D at 0x7f6d288b8f98>]