1. 程式人生 > >Jupyter Notebook 快速入門

Jupyter Notebook 快速入門

Jupyter Notebook(此前被稱為 IPython notebook)是一個互動式筆記本,支援執行 40 多種程式語言。在本文中,我們將介紹 Jupyter notebook 的主要特性,以及為什麼對於希望編寫漂亮的互動式文件的人來說是一個強大工具。

在開始使用 notebook 之前,我們先需要安裝該庫。你可以在 Jupyter 官網上找到完整的步驟。

譯者注:其實只要pip install jupyter就可以了

jupyter notebook

執行上面的命令之後,你將看到類似下面這樣的輸出:

[I 20:06:36.367 NotebookApp] Writing notebook server cookie secret to /run/user/1000/jupyter/notebook_cookie_secret
[I 20:06:36.813 NotebookApp] Serving notebooks from local directory: /home/your_username
[I 20:06:36.813 NotebookApp] 0 active kernels
[I 20:06:36.813 NotebookApp] The IPython Notebook is running at: http://localhost:8888/
[I 20:06:36.813 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

同時,會在你開啟 notebook 的資料夾中啟動 Jupyter 主介面,如下所示:

Jupyter 主介面

如果想新建一個 notebook,只需要點選New,選擇你希望啟動的 notebook 型別即可。

notebook 型別

這裡,因為我只有一個 Python 核心,所以我們執行一個 Python notebook。在新開啟的標籤頁中,我們會看到 notebook 介面,目前裡面什麼也沒有。

 notebook 介面

notebook 介面由以下部分組成:

  1. notebook 的名稱
  2. 主工具欄,提供了儲存、匯出、過載 notebook,以及重啟核心等選項
  3. 快捷鍵
  4. notebook 主要區域,包含了 notebook 的內容編輯區

慢慢熟悉這些選單和選項。如果想要詳細瞭解有關 notebook 或一些庫的具體話題,可以使用選單欄右側的幫助選單。

下方的主要區域,由被稱為單元格的部分組成。每個 notebook 由多個單元格構成,而每個單元格又可以有不同的用途。

下方截圖中看到的是一個程式碼單元格(code cell),以[ ]開頭。在這種型別的單元格中,可以輸入任意程式碼並執行。例如,輸入1 + 2並按下Shift + Enter。之後,單元格中的程式碼就會被計算,游標也會被移動動一個新的單元格中。你會得到如下結果:

程式碼單元格

根據綠色邊框線,我們可以輕鬆地識別出當前工作的單元格。接下來,我們在第二個單元格中輸入些其他程式碼,例如:

for i in range(5):
    print(i)

對上面的程式碼求值時,你會得到:

jupyter 程式碼執行例項

和前一個示例一樣,程式碼被計算之後,馬上就會顯示結果。你應該注意到了,這次沒有出現類似Out[2]

這樣的文字。這是因為我們將結果打印出來了,沒有返回任何的值。

notebook 有一個非常有趣的特性,就是可以修改之前的單元格,對其重新計算,這樣就可以更新整個文件了。試著把游標移回第一個單元格,並將1 + 2修改成2 + 3,然後按下Shift + Enter重新計算該單元格。你會發現結果馬上就更新成了 5。如果你不想重新執行整個指令碼,只想用不同的引數測試某個程式的話,這個特性顯得尤其強大。不過,你也可以重新計算整個 notebook,只要點選Cell -> Run all即可。

現在我們已經知道了如何輸入程式碼,為什麼不嘗試著讓這個 notebook 更加漂亮、內容更豐富?為此,我們需要使用其他型別的單元格,即 Header單元格和 Markdown單元格。

首先,我們在頂部新增一個 notebook 的標題。選中第一個單元格,然後點選Insert -> Insert單元格above(在上方插入單元格)。你會發現,文件的頂部馬上就出現了一個新的單元格。點選在快捷鍵欄中的單元格型別,將其變成一個標題單元格(heading cell):

變成一個標題 cell

選中下拉選項中的 Heading。然後會出現一個彈出訊息,告訴你如何建立不同層級的標題,這樣你就有了一個不同型別的 cell:

一個不同型別的 cell

這個單元格以#標記開頭,意味著這是一個一級標題。如果需要子標題,可以使用以下標記表示(改變單元格型別時彈出訊息中有解釋):

# : 一級標題
## : 二級標題
### : 三級標題
...

#之後寫下文件的標題,然後計算該單元格。你會發現一個樣式非常好看的標題。作為示例和練習,我還添加了其他幾個標題單元格:

添加了其他幾個標題 cell

新增好標題之後,我們在編寫一些解釋,介紹每個程式碼單元格中的情況。為此,我們要在相應的地方插入單元格,然後將其型別變成 Markdown。然後,計算新的單元格。就這樣,你的解釋文字就漂亮地渲染出來了!

解釋文字就漂亮地渲染出來了

最後,你可以重新命名該 notebook,點選Fiel -> Rename,然後輸入新的名稱。這樣,新的名稱將會出現在視窗的左上角,在 Jupyter 的標誌旁邊。

單元格操作

高階單元格操作,將讓編寫 notebook 變得更加方便。舉例如下:

  • 如果想刪除某個單元格,可以選擇該單元格,然後依次點選Edit -> Delete Cell
  • 如果想移動某個單元格,只需要依次點選Edit -> Move cell [up | down]
  • 如果想剪貼某個單元測,可以先點選Edit -> Cut Cell,然後在點選Edit -> Paste Cell [Above | Below]
  • 如果你的 notebook 中有很多單元格只需要執行一次,或者想一次性執行大段程式碼,那麼可以選擇合併這些單元格。點選Edit -> Merge Cell [Above | below]

記住這些操作,它們可以幫助你節省許多時間。

Markdown 單元格高階用法

我們再來看看 Markdown 單元格。雖然它的型別是 markdown,但是這類單元格也接受 HTML 程式碼。這樣,你就可以在單元格類實現更加豐富的樣式,新增圖片,等等。例如,如果想在 notebook 中新增 Jupyter 的 logo,將其大小設定為 100px x 100px,並且放置在單元格左側,可以這樣編寫:

<img src="http://blog.jupyter.org/content/images/2015/02/jupyter-sq-text.png"
style="width:100px;height:100px;float:left">

計算該單元格之後,會出現這樣的結果:

計算該單元格之後,會出現這樣的結果

另外,markdown 單元格還支援 LaTex 語法。例如:

$$\int_0^{+\infty} x^2 dx$$

計算上述單元格,將獲得下面的 LaTex 方程式:

LaTex 方程式

匯出功能

notebook 還有一個強大的特性,就是其匯出功能。可以將 notebook 匯出為多種格式:

  • HTML
  • Markdown
  • ReST
  • PDF(通過 LaTeX)
  • Raw Python

匯出 PDF 功能,可以讓你不用寫 LaTex 即可建立漂亮的 PDF 文件。你還可以將 notebook 作為網頁釋出在你的網站上。甚至,你可以匯出為 ReST 格式,作為軟體庫的文件。

Matplotlib 整合

如果你用 Python 繪製過圖形,那你肯定知道 matplotlib。Matplotlib 是一個用於建立漂亮圖形的 Python 庫,結合 Jupyter notebook 使用時體驗更佳。

要想在 Jupyter notebook 中使用 matplotlib,需要告訴 Jupyter 獲取 matplotlib 生成的所有圖形,並將其嵌入 notebook 中。為此,需要計算:

%matplotlib inline

譯註:要想執行成功,需要先pip install matplotlib

執行這個指令可能要花個幾秒鐘,但是在 notebook 中需要執行一次即可。接下來,我們來繪製一個圖形,看看具體的整合效果:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(20)
y = x**2

plt.plot(x, y)

上面的程式碼將繪製方程式 y=x^2 。計算單元格後,會得到如下圖形:

繪製方程式 y=x^2

我們看到,繪製出的圖形直接新增在了 notebook 中,就在程式碼的下面。我們可以之後修改程式碼,重新計算,這時圖形也會動態更新。這是每個資料科學家都想要的一個特性:將程式碼和圖片放在同一個檔案中,清楚地看出每段程式碼的效果。

非本地核心

我們可以非常容易地在一臺電腦上啟動 Jupyter,而且支援多人通過網路連線同一個 Jupyter 例項。在上一篇文章中,你有沒有注意啟動 Jupyter 時出現過這樣一段話:

The IPython Notebook is running at: http://localhost:8888/

這意味著,你的 notebook 是本地執行的,可以在瀏覽器上開啟 http://localhost:8888/ ,從而訪問 notebook。你也可以修改下配置,讓該 notebook 可以被公開訪問。這樣,任何知道 notebook 地址的人都可以連線到 notebook 進行遠端修改。

結語

從這兩篇快速入門介紹中,我們可以看到:Jupyter notebook 是一個非常強大的工具,可以建立漂亮的互動式文件,製作教學材料,等等。建議你馬上開始使用 Jupyter notebook,探索更多 notebook 的強大功能。

連結來自:https://www.packtpub.com/books/content/getting-started-jupyter-notebook-part-1

相關推薦

2、Jupyter Notebook 快速入門

style 獲得 名稱 有趣的 pri 16px move 連接 res Jupyter Notebook(此前被稱為 IPython notebook)是一個交互式筆記本,支持運行 40 多種編程語言。這裏,我們將介紹 Jupyter notebook 的主要特性

Jupyter Notebook 快速入門[轉]

cell src oca serve 之前 faq 添加 microsoft 圖形 Jupyter Notebook(此前被稱為 IPython notebook)是一個交互式筆記本,支持運行 40 多種編程語言。在本文中,我們將介紹 Jupyter note

Jupyter Notebook 快速入門簡易教程

Jupyter Notebook(此前被稱為 IPython notebook)是一個互動式筆記本,支援執行 40 多種程式語言。在本文中,我們將介紹 Jupyter notebook 的主要特性,以及為什麼對於希望編寫漂亮的互動式文件的人來說是一個強大工具。 在開始使

Jupyter Notebook 快速入門(下)

這兩天分享的 Jupyter Notebook 快速入門文章,比較基礎,只涉及了基本功能介紹和演示。後面再找機會分享其他高階用法。 從上一篇文章中,我們發現 Jupyter notebook 的基本功能就可以支援完成許多事情。不過它背後的功能和選項並不止於此。本文將進

Jupyter Notebook 快速入門

Jupyter Notebook(此前被稱為 IPython notebook)是一個互動式筆記本,支援執行 40 多種程式語言。在本文中,我們將介紹 Jupyter notebook 的主要特性,以及為什麼對於希望編寫漂亮的互動式文件的人來說是一個強大工具。 在開始使用 notebook 之前,我們先需要安

Python人工智慧常用庫Numpy and Jupyter notebook 使用入門

簡介:人工智慧的很多方關於資料的操作,機器學習,深度學習,大資料,資料分析等,或多或少都會用到numpy這一python工具庫。從搭建環境開始,從anaconda,jupyter notebook,再到課程重點numpy工具庫的使用。簡單來說,Anaconda是包管理器和環境

Jupyter Notebook 入門

菜單欄 plt 輸出 識別 標簽 動態更新 you inline bsp 參考 Jupyter Notebook 快速入門 Jupyter Notebook(此前被稱為 IPython notebook)是一個交互式筆記本,支持運行 40 多種編程語言。在本文

Jupyter notebook入門教程(上)

本文將分上下兩部分簡單介紹Jupyter notebook的入門教程,英文原文出處: Jupyter notebook(又稱IPython notebook)是一個互動式的筆記本,支援執行超過40種程式語言。本文中,我們將介紹Jupyter notebook的主要特點,

Tensorflow入門筆記(一) Anaconda3如何切換Python3.5並安裝TensorFlow(包括安裝Spyder 與Jupyter notebook

一、前言:       題主配置: Win10、Anaconda3 (對應Python 3.6.5) 二、Anaconda切換Python版本 【注】(Anaconda2跟3其實是一樣的操作) 1.建立Python的新版本環境 【注】進入命令列(ctrl+R,輸入c

基於Jupyter Notebook從頭學習機器學習 | 入門資料分享

乾明 編譯整理 量子位 報道 | 公眾號 QbitAI熱心分享機器學習入門資料的人越來越多了。今

機器學習新手必看:Jupyter Notebook入門指南

翻譯 | 張建軍出品 | 人工智慧頭條(公眾號ID:AI_Thinker)【人工智慧頭條導讀】Jupyter

【邢不行|量化小講堂系列22-Python量化入門】最優雅的Python程式設計方式:Jupyter Notebook視訊教程

引言: 邢不行的系列帖子“量化小講堂”,通過實際案例教初學者使用python進行量化投資,瞭解行業研究方向,希望能對大家有幫助。 【歷史文章彙總】請點選此處 個人微信:coinquant,有問題歡迎交流。 最優雅的Python程式設計方式:Ju

day39-Spring 12-Spring的JDBC模板:快速入門

pri 哪些 困難 ces 5.0 使用 只需要 common commons Spring AOP的關鍵是它的底層的原理和思想,配置和使用並不是十分困難.AOP本身就是一個思想,是面向對象的延伸,不是用來替換面向對象的,而是用來解決面向對象中的一些問題的.在最初的時候提出

vuex2快速入門

for nbsp mar lin ext mac os cnblogs value san #建立store.jsimport Vue from ‘vue‘; import Vuex from ‘vuex‘; Vue.use(Vuex) export d

快速入門系列--WCF--07傳輸安全、授權與審核

最大的 緩存 ims cut 常見 曾經 strong 這一 set 這部分主要涉及企業級應用的安全問題,一般來說安全框架主要提供3個典型的安全行為:認證、授權和審核。除了典型的安全問題,對於一個以消息作為通信手段的分布式應用,還需要考慮消息保護(Message Prote

快速入門系列

body 現在 安全 behavior 需求 discovery 中心 驗證 溝通 最後一章將進行WCF擴展和新特性的學習,這部分內容有一定深度,有一個基本的了解即可,當需要自定義一個完整的SOA框架時,可以再進行細致的學習和實踐。 服務端架構體系的構建主要包含接下來

快速入門系列--WCF--02消息、會話與服務寄宿

abc align bsp 不同的 cpu .org 程序 伸縮 網絡 經過WCF基礎的ABC學習,已經可以構建簡單的WCF的服務,使用不同的服務地址和綁定類型,根據業務提供所需的服務契約。但不禁想問,服務所使用的消息報文是什麽樣的形式麽?蘊含什麽樣內容呢?WCF服務是否支

jupyter notebook

登錄密碼 gen onf word jupyter notebook str -- -c 生成配置文件jupyter_notebook_config.py(~/.jupyter下) jupyter notebook --generate-config IP綁

python 基本語法速覽,快速入門

我們 method adding ger monk use gre 數據類型 struct https://zhuanlan.zhihu.com/p/24536868 學習參考於這個博文。 我做一個筆記。 關於python一些常用的語法快速的預覽,適合已經掌握一門編程語

Django REST framework 的快速入門教程

ret turn ads 使用 blog 所有 定義 想去 cti CRM-API項目搭建 序列器(Serializers) 首先,我們來定義一些序列器。我們來創建一個新的模塊(module)叫做 crm/rest_searializer.py ,這是我們用來描述數據是如何