Jupyter Notebook 入門指南

簡介

Jupyter Notebook(此前被稱為 IPython notebook)是一個交互式筆記本,支持運行 40 多種編程語言。

Jupyter Notebook 的本質是一個 Web 應用程序,便于創建和共享文學化程序文檔,支持實時代碼,數學方程,可視化和?markdown。 用途包括:數據清理和轉換,數值模擬,統計建模,機器學習等等

安裝與運行

1.使用Anaconda安裝

對于小白,強烈建議使用Anaconda發行版安裝Python和Jupyter,其中包括Python、Jupyter Notebook和其他常用的科學計算和數據科學軟件包。

首先,下載Anaconda。建議下載Anaconda的最新Python 3版本。其次,請按照下載頁面上的說明安裝下載的Anaconda版本。最后,安裝成功!

2.使用pip命令安裝

對于有經驗的Python用戶,可以使用Python的包管理器pip而不是Anaconda 來安裝Jupyter 。

如果已經安裝了Python 3:

python3?-m?pip?install?–upgrade?pip

pi3?install?jupyter

如果已經安裝了Python 2:

python2?-m?pip?install?–upgrade?pip

pip2?install?jupyter

但推薦使用Anaconda,自帶了Numpy、Scipy、Matplotlib等多種python開發包和Jupyter Notebook!

3.運行Jupyter Notebook

成功安裝Jupyter Notebook后,在Terminal (Mac / Linux)或Command Prompt(Windows)中運行以下命令就可打開Jupyter Notebook

?

輸入 :jupyter?notebook

?

執行上面命令之后, Jupyter Notebook 將在你的默認瀏覽器中打開,網址為:http://localhost:8888/tree

或者在開始菜單頁面直接打開

?


主面板(Notebook Dashboard)

?

?

打開Notebook,可以看到主面板。在菜單欄中有Files(文件)、Running(運行)、Clusters(集群)、三個選項。用到最多的是Files,我們可以在這里完成notebook的新建、重命名、復制等操作。

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 腳本了。

創建python文件

?

從“New”選項中選擇 “Python 3” 選項。你會看到如下的截圖:

?

代碼上方的菜單欄提供了操作單元格的各種選項:

insert (添加),edit (編輯),cut (剪切),move cell up/down (上下移動單元格),run cells(在單元格中運行代碼),interupt (停止代碼),save (保存工作),以及 restart (重新啟動內核)

?

在下拉菜單中(如上所示),你有四個選項:

Code – 這是你輸入代碼的地方

Markdown – 這是你輸入文本的地方。你可以在運行代碼后添加結論,添加注釋等。

Raw NBConvert – 這是一個命令行工具,可將你的筆記本轉換為另一種格式(如 HTML)

Heading – 你可以將標題添加到單獨的小節并使你的 Notebook 看起來干凈整潔。這個選項現在已經集成到 Markdown 選項中。添加一個“##”,以確保在你之后輸入的內容將被視為標題

編輯界面

一個notebook的編輯界面主要由四部分組成:名稱、菜單欄、工具條以及單元(Cell),如下圖所示:

?

1.在這里,我們可以修改notebook的名字,直接點擊當前名稱,彈出對話框進行修改:?

?

2.菜單欄詳解

2.1 File

? ?

?

2.2 Edit

?


2.3 View

?


2.4 Insert

?


2.5 Cell

?


2.6 Kernel


2.7 Help

?


3. 工具條

?

工具條中的功能基本上在菜單中都可以實現,這里是為了能更快捷的操作,將一些常用按鈕放了出來。下圖是對各按鈕的解釋。

?


4 .單元(Cell)

在單元中我們可以編輯文字、編寫代碼、繪制圖片等等。對于單元的詳細內容放在第五節中介紹。

單元(Cell)


1.兩種模式與快捷鍵

?

對于Notebook中的單元,有兩種模式:命令模式(Command Mode)與編輯模式(Edit Mode),在不同模式下我們可以進行不同的操作

?

如上圖,在編輯模式(Edit Mode)下,右上角出現一只鉛筆的圖標,單元左側邊框線呈現出綠色,點Esc鍵或運行單元格(ctrl-enter)切換回命令模式。

?

在命令模式(Command Mode)下,鉛筆圖標消失,單元左側邊框線呈現藍色,按Enter鍵或者雙擊cell變為編輯狀態。

2 .Cell的四種功能

?

?

Cell有四種功能:Code、Markdown、Raw NBConvert、Heading,這四種功能可以互相切換。Code用于寫代碼,Markdown用于文本編輯,Raw NBConvert中的文字或代碼等都不會被運行,Heading是用于設置標題的,這個功能已經包含在Markdown中了。四種功能的切換可以使用快捷鍵或者工具條

Markdown用于編輯文本,給出常用的Markdown用法

?

?

快捷鍵

一旦進入命令模式(即沒有活動單元格),就可以嘗試以下快捷鍵:

A 鍵將在選中單元格上方插入新單元格,B 鍵將在選中單元格下方插入一個單元格

要刪除單元格,請連續按兩次 D 鍵

要撤消已刪除的單元格,請按 Z 鍵

Y 鍵將當前的選中單元格變成代碼單元格

按住 Shift + 向上或向下箭頭鍵可以選擇多個單元格。在多選模式下,按 Shift + M 會合并選中的單元格

F 鍵會彈出 “查找和替換” 菜單

處于編輯模式時(在命令模式下按 Enter 鍵進入編輯模式),你會發現以下快捷鍵非常好用:

Ctrl + Home 轉到單元格的開頭

Ctrl + S 會保存你的工作

和上面提過的一樣,Ctrl + Enter 將運行你的整個單元格

Alt + Enter 不僅會運行你的單元格,它還會在下方添加一個新的單元格

Ctrl + Shift + F 打開命令選項板


其他

按tab鍵查看提示信息或者補全命令

在一個庫、方法或變量前加上 ?,就可以獲得它的一個快速語法說明

使用分號可以阻止該行函數的結果輸出

有用的 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 中的所有標題,并將它們顯示在一個浮動窗口中

保存和共享你的 Notebook

這是 Jupyter Notebook 中最重要和最棒的功能之一。當我需要寫博客文章,但我的代碼和注釋都保存在 Jupyter 文件中時,我需要先將它們轉換為另一種格式。請記住,這些 Notebooks 采用 json 格式,在共享它時這并不是很有幫助。我無法在電子郵件或博客上發布不同的單元格或代碼塊,對吧?

進入 Files?菜單,你會看到一個 Download As 選項:

?

你可以將你的 Notebook 保存為 7 個選項中的任何一個。最常用的是 .ipynb 文件,這樣其他人就可以在自己的機器上復制代碼;或者保存為 .html 文件, 這樣會打開一個網頁(當你想要保存嵌入在 Notebook 中的圖像時,這會派上用場)

你也可以使用 nbconvert 選項手動將你的 Notebook 轉換為不同的格式,如 HTML 或 PDF。

你還可以使用 jupyterhub,它允許你在其服務器上托管 Notebooks 并與多個用戶共享。許多頂尖的研究項目都使用這個功能用于協作。

最佳實踐

?

雖然單獨工作可能很有趣, 但大多數時候你會發現自己是在一個團隊中工作。在這種情況下,遵循指導方針和最佳實踐非常重要,這樣可以確保你的代碼和 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 個選項:

?

好好試一試每一個選項以更好地理解它,它會改變你呈現你的代碼的方式!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/285350.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/285350.shtml
英文地址,請注明出處:http://en.pswp.cn/news/285350.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言試題127之 100 之內的素數

?作者簡介:大家好我是碼莎拉蒂,CSDN博客專家?????? ??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 1、題目 題目:求 100 之內的素數 2 、溫馨提示 想獲取更多C語言題目請猛搓這里==========》200個C語…

學弟學妹們,C#為啥學不好?是因為你沒真正理解面向對象的思想!

文章目錄 7.1面向對象的基本概念7.1.1 什么是面向對象編程7.1.2 面向對象編程的特點7.2 類7.2.1 類的概念7.2.2 類的聲明7.2.3 類的成員7.2.4 類成員訪問修飾符7.3 對象7.4 構造函數和析構函數7.4.1 構造函數7.4.2 析構函數7.5 方法7.5.1 方法的聲明7.5.2 方法的參數7.5.3 靜態…

MongoDB中的分組

一.MongoDB中的Count函數、Distinct函數以及分組 準備工作&#xff0c;插入一個班級的文檔 > for(var i0;i<10;i){ ... db.Classes.insert({ClassName:"Class"i,_id:i}); ... } WriteResult({ "nInserted" : 1 }) > db.Classes.find() { "_i…

在 .NET 6 項目中使用 Startup.cs

對于 .NET 6 項目&#xff0c;現在已經找不到 Startup.cs 文件。默認情況下&#xff0c;此文件已經被刪除&#xff0c;并且 Program.cs 是配置依賴注入服務和 Middleware 的新位置。但是&#xff0c;有些人可能更喜歡使用 Startup.cs , 并且我也是&#xff0c;可能已經習慣了&a…

編寫iptables腳本實現IP地址、端口過濾

實驗案例&#xff1a;公司使用一臺運行RHEL5系統的服務器作為網關&#xff0c;分別連接三個網絡&#xff0c;其中LAN1為普通員工電腦所在的局域網&#xff0c;LAN2為DNS緩存服務器所在的局域網。eth0通過10M光纖接入Internet。為了有效的管理網絡環境及增強內部網絡的安全性&am…

讓VS Code 支持 Jupyter Notebook

一、Jupyter Notebook Jupyter Notebook是基于網頁的用于交互計算的應用程序。其可被應用于全過程計算&#xff1a;開發、文檔編寫、運行代碼和展示結果。——Jupyter Notebook官方介紹。 Jupyter Notebook是以網頁的形式打開&#xff0c;可以在網頁頁面中直接編寫代碼和運行代…

C語言試題128之對 10 個數進行排序

?作者簡介:大家好我是碼莎拉蒂,CSDN博客專家?????? ??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 1、題目 題目:對 10 個數進行排序 分析:可以利用選擇法,即從后 9 個比較過程中,選擇一個最小的與…

JavaScript設計模式

JavaScript的設計模式&#xff1a; 1、單例模式 單例模式&#xff08;Singleton&#xff09;&#xff0c;整個運行期間只會被初始化一次。該模式簡單易懂&#xff0c;運用也很廣泛。可以用它來聚合公共的方法&#xff0c;形成一個工具類&#xff0c;對外提供api。 var single …

Windows 11 23H2 25145 推送!全新隱私設置和 OneDrive 體驗

面向 Dev 頻道的 Windows 預覽體驗成員&#xff0c;微軟現已推送 Windows 11 預覽版 Build 25145。主要變化1.微軟宣布為 Windows 11 設置引入全新 OneDrive 體驗&#xff0c;您可以在設置中查看 OneDrive 云存儲服務的訂閱詳情&#xff0c;包括付費方式、容量大小和定期付費等…

你不知道的無人機知識(建議收藏)

文章目錄 無人機簡介無人機的分類按用途分類按飛行平臺構型分類按大小分類按飛行性能分類你絕對沒有見過的無人機真三維模型 無人機簡介 無人駕駛飛機簡稱“無人機”,英文縮寫為“UAV”,是利用無線電遙控設備和自備的程序控制裝置操縱的不載人飛機,或者由車載計算機完全地或…

用jekyll制作高大上的網站(二)——實際應用

最近公司要制作個文檔庫&#xff0c;直接就可以將jekyll應用到實際中。 模版使用了Jekyll Clean&#xff0c;這么模版相對內部簡單一點&#xff0c;學習成本不會很大&#xff0c;而復雜的Minimal Mistakes就當作參考。 模版使用的CSS是Bootstrap v3.2.0版本的。為了省時點&…

Python腳本模擬登錄網頁之CSDN篇

1. 通過Firefox配合插件Tamper Date獲取登錄時客戶端向服務器端提交的數據, 并且發現lt和execution這兩個字段每次登錄時都不一樣. POSTDATAusernameyour_id&passwordyour_pwd&ltLT-239317-XyzqoketZ2AhHE5BSIKLwW7gNyb4sP&executione2s1&_eventIdsubmit 2. 于…

C語言試題129之求一個 3乘3 矩陣對角線元素之和

?作者簡介:大家好我是碼莎拉蒂,CSDN博客專家?????? ??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 1、題目 題目:求一個 3乘3 矩陣對角線元素之和 分析:利用雙重 for 循環控制輸入二維數組,再將 a[…

ssh key生成

Mac電腦用終端生成SSH key 訪問自己的Github 字數684 閱讀427 評論4 喜歡15前言&#xff1a;最近有不少剛剛使用github管理代碼的開發者或者新手碼農在網上 問我如何關聯自己的github&#xff0c;今天就寫篇文章僅供參考。一、首先你要檢測自己電腦是否存在 SSH key 在終端輸出…

[轉]小白都能看懂的softmax詳解

1.softmax初探 在機器學習尤其是深度學習中&#xff0c;softmax是個非常常用而且比較重要的函數&#xff0c;尤其在多分類的場景中使用廣泛。他把一些輸入映射為0-1之間的實數&#xff0c;并且歸一化保證和為1&#xff0c;因此多分類的概率之和也剛好為1。 首先我們簡單來看看s…

MAUI 入門教程系列(5.XAML及頁面介紹)

前言作為微軟的UI框架&#xff0c;除了Winform以外&#xff0c;多數是以創建XAML文件的方式來編寫前端的頁面&#xff0c;盡管你也可以通過C#代碼來編寫你的用戶界面&#xff0c;與Xamarin.Forms相同&#xff0c;在MAUI上編寫XAML的聲明方式與其相同&#xff0c;重構了底層部分…

藍牙mesh網絡基礎

藍牙mesh網絡基礎轉載于:https://blog.51cto.com/11534544/2044130

Linux系統開機自啟流程

第一步&#xff1a;POST&#xff08;Power On Safe Test&#xff09;加電自檢當按下電源鍵以后&#xff0c;CPU因為有電流通過便開始對自身、I/O設備、內存等硬件進行檢驗。那么CPU如何得知這些自檢指令&#xff1f;我們知道指令存在于內存當中&#xff0c;尋找內存也需要指令。…

ArcGIS空間數據:矢量和柵格數據結構詳解

文章目錄 矢量數據結構矢量數據簡介Shapefile矢量格式柵格數據結構地理數據庫中的柵格柵格管理策略柵格數據的地理屬性柵格的地理屬性通常包括地理數據集中的柵格塊表實體柵格表示矢量數據結構 矢量數據簡介 基于矢量數據模型的數據結構簡稱矢量數據結構,是通過記錄實體坐標…

C語言試題130之有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中

?作者簡介:大家好我是碼莎拉蒂,CSDN博客專家?????? ??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 1、題目 題目:有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中 分析:先判…