原文轉載:https://zhuanlan.zhihu.com/p/33105153
https://blog.csdn.net/guleileo/article/details/80490921
一、運行jupyter notebook
0、獲取幫助
如果你有任何jupyter notebook命令的疑問,可以考慮查看官方幫助文檔,命令如下:
jupyter notebook --help
或
jupyter notebook -h
1. 啟動
① 默認端口啟動
在終端中輸入以下命令:
jupyter notebook
執行命令后,會在終端顯示一系列的notebook的服務信息,同時瀏覽器會打開自動啟動jupyter notebook
啟動過程中終端會顯示如下內容:
C:\Users\24414>jupyter notebook [I 11:12:47.948 NotebookApp] Serving notebooks from local directory: C:\Users\24414 [I 11:12:47.948 NotebookApp] 0 active kernels [I 11:12:47.948 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/?token=6a17980cd4bfa0af7be412e76afdc190da6a16b38bbfb67c [I 11:12:47.949 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [C 11:12:47.957 NotebookApp] Copy/paste this URL into your browser when you connect for the first time, to login with a token: http://localhost:8888/?token=6a17980cd4bfa0af7be412e76afdc190da6a16b38bbfb67c [I 11:12:48.185 NotebookApp] Accepting one-time-token-authenticated connection from ::1
- 注意:之后在Jupyter Notebook的所有操作,都請保持終端不要關閉,因為一旦關閉終端,就會斷開與本地服務器的鏈接,你將無法在Jupyter Notebook中進行其他操作啦。
瀏覽器地址欄中默認地將會顯示:http://localhost:8888
。其中,“localhost”指的是本機,“8888”則是端口號。
如果你同時啟動了多個Jupyter Notebook,由於默認端口“8888”被占用,因此地址欄中的數字將從“8888”起,每多啟動一個Jupyter Notebook數字就加1,如“8889”、“8890”
② 指定端口啟動
如果你想自定義端口號來啟動Jupyter Notebook,可以在終端中輸入以下命令:
jupyter notebook --port <port_number>
其中,“<port_number>”是自定義端口號,直接以數字的形式寫在命令當中,數字兩邊不加尖括號“<>”。如:jupyter notebook --port 9999
,即在端口號為“9999”的服務器啟動Jupyter Notebook。
③ 啟動服務器但不打開瀏覽器
如果你只是想啟動Jupyter Notebook的服務器但不打算立刻進入到主頁面,那么就無需立刻啟動瀏覽器。在終端中輸入:
jupyter notebook --no-browser
此時,將會在終端顯示啟動的服務器信息,並在服務器啟動之后,顯示出打開瀏覽器頁面的鏈接。當你需要啟動瀏覽器頁面時,只需要復制鏈接,並粘貼在瀏覽器的地址欄中,輕按回車變轉到了你的Jupyter Notebook頁面。
2、主頁面
① 主頁面內容
當執行完啟動命令之后,瀏覽器將會進入到Notebook的主頁面,如下圖所示。展示內容為你的電腦:C:\Users\<username>路徑下的文件,對於我的電腦路徑為C:\Users\24414
② 設置Jupyter Notebook文件存放位置
如果你不想把今后在Jupyter Notebook中編寫的所有文檔都直接保存在家目錄下,那你需要修改Jupyter Notebook的文件存放路徑。
首先我們創建一個文件夾,記住文件路徑。例如我在路徑:E:\jupyter_file 創建了一個jupyter_file的文件夾
然后修改默認存儲路徑:
- 菜單中打開Anaconda Prompt,
- 輸入命令 jupyter notebook --generate-config
- 根據上面運行處的路徑打開C:\Users\24414\.jupyter文件(只有執行上一步后才會生成jupyter_notebook_config.py文件)
- 找到#c.NotebookApp.notebook_dir = '',去掉該行前面的“#”,在打算存放文件的位置先新建一個文件夾(很重要),然后將新的路徑設置在單引號中,保存配置文件
- 在開始菜單找到“Jupyte Notebook”快捷鍵,鼠標右擊 -- 更多 -- 打開文件位置
- 找到對應的“Jupyte Notebook”快捷鍵,鼠標右擊 -- 屬性 -- 目標,去掉后面的 "%USERPROFILE%/"(很重要),然后點擊“應用”,“確定”
- 重新啟動Jupyte Notebook即可,我們可以看到一個干凈的主頁
二、Jupyter Notebook的基本使用
1. Files頁面
Notebook 打開后,你會在頂部看到三個選項卡:Files(文件),Running(運行)和 Clusters(集群)。Files 基本上列出了所有的文件,Running 顯示你當前已經打開的終端和Notebooks,Clusters 由 IPython parallel 包提供,用於並行計算。
要打開一個新的 Jupyter Notebook,請單擊頁面右側的“New”選項卡。在這里,你有四個選項可供選擇:
⦁ Python 3
⦁ Text File (文本文件)
⦁ Folder (文件夾)
⦁ Terminal (終端)
在 "Text File" 選項中,你會得到一個空白的文檔。輸入你喜歡的任何字母,單詞和數字。它基本上是一個文本編輯器(類似於 Ubuntu 上的應用程序)。你也可以選擇一種語言(支持非常多的語言),然后用該語言來寫一個腳本。你還可以查找和替換文件中的單詞。
在 "Folder" 選項中, 顧名思義它的功能就是創建文件夾。你可以創建一個新文件夾來放入文件,重新命名或者刪除它。
"Terminal" 的工作方式與你的 Mac 電腦或 Linux 電腦上的終端完全相同(或者 Windows 上的 cmd )。它在你的Web瀏覽器中支持終端會話。在這個終端中輸入 python ,瞧!現在你已經可以開始寫 python 腳本了。
2、我們將重點介紹 Notebooks
從“New”選項中選擇 "Python 3" 選項。你會看到如下的截圖:
在下拉菜單中(如上所示),你有四個選項:
-
Code - 這是你輸入代碼的地方
-
Markdown - 這是你輸入文本的地方。你可以在運行代碼后添加結論,添加注釋等。
-
Raw NBConvert - 這是一個命令行工具,可將你的筆記本轉換為另一種格式(如 HTML)
-
Heading - 你可以將標題添加到單獨的小節並使你的 Notebook 看起來干凈整潔。這個選項現在已經集成到 Markdown 選項中。添加一個“##”,以確保在你之后輸入的內容將被視為標題
3、使用 Magic Functions
Jupyter NoteBook 是功能強大的Python交互IDE,深受數據分析師和算法工程師的熱愛。Jupyter NoteBook 在綜合使用文字、代碼、圖片等多種元素展示設計者的想法方面有着美妙的用戶體驗。而其自帶的一些常用Magic Command 可以讓它變得更加得心應手。
magic函數主要包含兩大類,一類是行魔法(Line magic)前綴為%,一類是單元魔法(Cell magic)前綴為%%;
Line-wise 是當你想要執行一個單行命令的時候使用,而 Cell-wise 是你想要執行的命令不僅僅是一行,而是整個單元格中的整個代碼塊時使用
最常用的魔法函數有以下幾個((注意:通常不需要輸入“%”,因為通常 Automagic 是默認打開的)):
3.1、%lsmagic #打印當前可以用的魔法命令,當我們想使用一個魔法命令,而不知怎么拼寫函數名時,可以使用%lsmagic來查詢;
3.2、%魔法命令+?顯示魔法命令的說明 Docstring
3.3、%matplotlib inline #使用matplotlib畫圖時,圖片嵌入在jupyter notebook里面,不以單獨窗口顯示
3.4、%timeit 行計時 %%timeit代碼塊計時 #為代碼執行計時
3.5、%%writefile #后面緊接着一個file_name.py,表示在jupyter notebook里面創建一個py文件,后面cell里面的內容為py文件內容
1 %%writefile test_peace.py 2 import numpy as np 3 print(np.random.randint(1,5))
在當前路徑下會生成一個test_peace.py的文件,內容就是cell里面的內容
Writing test_peace.py
3.6、%pwd #和linux一樣,查找當前目錄
3.7、%cd #更改當前目錄
%cd ../
操作起來和Linux,Unix系統的文件操作差不多
/home/hanxiaoyang/ml_jxy5/0.Teacher
3.8、%cp #復制文件
1 %cp test_peace.py test_load.py
3.9、%whos #查看當前變量,類型,信息

3.10、%reset #清除變量
1 %reset 2 >>> 3 %whos 4 Interactive namespace is empty.
前面定義的變量就已經全部被清除了
3.11、%del #清除某一個變量
3.12、%load #加載一個文件里面的內容
*4、不僅限於 Python - 在 Notebooks 中使用 R,Julia 和JavaScript
Notebooks 的魔術並不止於此。你甚至可以在 Notebooks 中使用其他語言,如 R,Julia,JavaScrip t等。我個人喜歡 R 中的 ggplot2 軟件包,因此使用 Notebooks 來進行探索性數據分析非常方便。
要在 Jupyter 中啟用 R,你需要 GitHub上提供的 IRKernel( R 的專用內核)。這里有一份詳細的指南(地址:https://discuss.analyticsvidhya.com/t/how-to-run-r-on-jupyter-ipython-notebooks/5512),總共需要八個步驟,還有截圖來引導你一步一步進行操作。
如果你是 Julia 用戶,你也可以在 Jupyter Notebooks 中使用它!查看這篇詳盡的文章(地址:https://discuss.analyticsvidhya.com/t/how-to-run-r-on-jupyter-ipython-notebooks/5512),它重點介紹了 Julia 用戶如何學習數據科學,並包括了一章節介紹如何在 Jupyter 環境中使用 Julia。
如果你更喜歡使用 JavaScript,我推薦使用 IJavascript 內核。查看這個 GitHub 庫(地址:https://github.com/n-riesco/ijavascript),它會引導你在不同操作系統上安裝此內核。 請注意,你需要先安裝 Node.js 和 npm 才能使用它。
*5、Jupyter Notebooks 中的交互式命令板
在開始添加小插件(widget)之前,你需要導入 widgets 包:
1 from ipywidgets import widgets
小插件的基本類型是典型的文本輸入框和按鈕。請參閱以下來自Dominodatalab 的示例,了解一下交互式小插件是怎么使用的:
你可以在這里(地址:https://blog.dominodatalab.com/interactive-dashboards-in-jupyter/)查看詳盡的開發指南。
6、鍵盤快捷鍵——節省時間並提高效率!
快捷鍵是 Jupyter Notebooks 最好用的功能之一。當你想運行任何代碼塊時,你只需要按下Ctrl + Enter 即可。Jupyter Notebooks 提供的鍵盤快捷鍵非常多,為我們節省了大量時間。
以下是我們挑選的一些快捷鍵,你在開始使用 Notebooks 時會經常用到這些快捷鍵。我強烈建議你閱讀這些內容的時候一個一個地嘗試一下這些快捷鍵。
Jupyter Notebook 提供了兩種不同的鍵盤輸入模式 - 命令和編輯。
命令模式將鍵盤與 Notebook 命令綁定,並由具有藍色左邊距的帶有灰色單元格邊框來表示。編輯模式允許你將文本(或代碼)輸入活動單元格,並以綠色單元格邊框表示。
使用 Esc 和 Enter 在命令和編輯模式之間跳轉
一旦進入命令模式(即沒有活動單元格),就可以嘗試以下快捷鍵:
-
A 鍵將在選中單元格上方插入新單元格,B 鍵將在選中單元格下方插入一個單元格
-
要刪除單元格,請連續按兩次 D 鍵
-
要撤消已刪除的單元格,請按 Z 鍵
-
Y 鍵將當前的選中單元格變成代碼單元格
-
按住 Shift + 向上或向下箭頭鍵可以選擇多個單元格。在多選模式下,按 Shift + M 會合並選中的單元格
-
F 鍵會彈出 “查找和替換” 菜單
處於編輯模式時(在命令模式下按 Enter 鍵進入編輯模式),你會發現以下快捷鍵非常好用:
-
Ctrl + Home 轉到單元格的開頭
-
Ctrl + S 會保存你的工作
-
和上面提過的一樣,Ctrl + Enter 將運行你的整個單元格
-
Alt + Enter 不僅會運行你的單元格,它還會在下方添加一個新的單元格
-
Ctrl + Shift + F 打開命令選項板
要查看整個鍵盤快捷鍵列表,請在命令模式下按 H 或轉到 Help 菜單欄下的 Keyboard shortcuts。請經常檢查這些內容,因為經常會有新的快捷鍵被加進來。
7、有用的 Jupyter Notebooks 擴展
擴展可以有效提高你的 Jupyter Notebooks 的生產力。安裝和使用擴展的最佳工具之一是 Nbextensions。它需要兩個簡單的步驟來安裝(也有其他方法,但我發現這是最方便的):
第1步:用 pip 來安裝它:
pip install jupyter_contrib_nbextensions
第2步:安裝關聯的 JavaScript 和 CSS 文件:
jupyter contrib nbextension install --user
完成此操作后,你會在 Jupyter Notebook 主頁頂部看到一個 Nbextensions 選項卡。這里面有很多非常棒的擴展供你使用。
要啟用一個擴展,只需點擊它來激活。我在下面提到了4個我認為最有用的擴展:
-
Code prettify:重新格式化和美化代碼塊的內容。
-
Printview:這個擴展添加了一個工具欄按鈕來調用當前 Notebook 的 jupyter nbconvert,並可選擇在新的瀏覽器標簽中顯示轉換后的文件。
-
Scratchpad:這個擴展增加一個便捷單元格,它可以讓你運行你的代碼而不必修改你的 Notebook。這是一個非常方便的擴展,特別是當你想要測試你的代碼,但不想在你的活動Notebook上做這件事。
-
Table of Contents (2):這個擴展可以收集你的 Notebook 中的所有標題,並將它們顯示在一個浮動窗口中。
這些只是你可以使用的其中一些擴展。我強烈建議查看整個擴展列表並對它們進行測試。
8、保存和共享你的 Notebook
這是 Jupyter Notebook 中最重要和最棒的功能之一。當我需要寫博客文章,但我的代碼和注釋都保存在 Jupyter 文件中時,我需要先將它們轉換為另一種格式。請記住,這些 Notebooks 采用 json 格式,在共享它時這並不是很有幫助。我無法在電子郵件或博客上發布不同的單元格或代碼塊,對吧?
進入 Files 菜單,你會看到一個 Download As 選項:
你可以將你的 Notebook 保存為 7 個選項中的任何一個。最常用的是 .ipynb 文件,這樣其他人就可以在自己的機器上復制代碼;或者保存為 .html 文件, 這樣會打開一個網頁(當你想要保存嵌入在 Notebook 中的圖像時,這會派上用場)。
你也可以使用 nbconvert 選項手動將你的 Notebook 轉換為不同的格式,如 HTML 或 PDF。
你還可以使用 jupyterhub,它允許你在其服務器上托管 Notebooks 並與多個用戶共享。許多頂尖的研究項目都使用這個功能用於協作。
*9、JupyterLab
JupyterLab 於今年 2 月推出,它允許以更靈活和更強大的方式處理項目,但使用的是和 Jupyter Notebooks 相同的組件。JupyterLab 環境與 Jupyter Notebooks 完全相同,但用戶會有更高效的體驗。
在 JupyterLab 中,你只需一個窗口即可安排 Notebook 的工作區域、終端、文本文件和輸出!你要做的僅僅是將單元格拖放到你想要的位置。你還可以通過實時預覽功能來編輯常用文件格式,如 Markdown、CSV 和 JSON,以便在實際文件中實時查看所發生的變化。
如果你想在你的機器上試用它,你可以在這里查看安裝說明(地址:http://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html)。 開發人員的目標是 JupyterLab 最終可以取代 Jupyter Notebooks。但是,要做到這一點還要花點時間。
10、最佳實踐
雖然單獨工作可能很有趣, 但大多數時候你會發現自己是在一個團隊中工作。在這種情況下,遵循指導方針和最佳實踐非常重要,這樣可以確保你的代碼和 Jupyter Notebooks 被正確標注,以便與你的團隊成員保持一致。下面我列出了一些最佳實踐指南,你在 Jupyter Notebooks 上工作時一定要遵循以下指南:
-
對於任何程序員來說最重要的事情之一:始終確保為代碼添加合適的注釋!
-
確保你有代碼所需的文檔。
-
考慮一個命名方案,並堅持在所有代碼中使用以確保一致性。這樣其他人更容易讀懂你的代碼。
-
無論你需要什么庫,在 Notebooks 開始時導入它們(並在它們旁邊添加注釋,說明導入它們的目的)。
-
確保代碼中行與行之間有適當間隔,不要把循環和函數放在同一行中。
-
有時候你會發現你的文件變得非常繁重。看看有沒有方法隱藏你認為對於以后參考不太重要的代碼。 Notebooks 看起來整潔干凈, 讓人賞心悅目也非常重要。
-
Matplotlib 可以很漂亮整潔地展示你的 Notebook,看看怎么使用它!
地址:http://nbviewer.jupyter.org/github/jrjohansson/scientific-python-lectures/blob/master/Lecture-4-Matplotlib.ipynb
另一個提示! 當你想創建演示文稿時,首先想到的工具是 PowerPoint 和 Google Slides。其實你的 Jupyter Notebooks 也可以創建幻燈片!還記得我說它超級靈活嗎? 我一點都沒有誇大。
要將你的 Notebooks 轉換為幻燈片,請轉到 View -> Cell Toolbar,然后單擊 Slideshow。看!現在,每個代碼塊都在右側顯示一個 Slide Type 的下拉選項。它提供了以下 5 個選項:
好好試一試每一個選項以更好地理解它,它會改變你呈現你的代碼的方式!
11、結語
請注意,這篇文章並沒有詳盡列出 Jupyter Notebooks 提供的所有功能。還有更多的功能等着你在使用中挖掘。和其他很多事情一樣,關鍵在於實踐。
最后分享一個 GitHub 庫(地址:https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks),里面有很多有用的內容。