[?知識是人生的燈塔,只有不斷學習,才能照亮前行的道路?]
0x00 Jupyter Notebook 簡明指南
描述:前面我們已經在機器學習工作站(Ubuntu 24.04 Desktop
+ Geforce RTX 4070Ti SUPER
)中安裝 Anaconda
工具包,其中也包含了 Jupyter Notebook
(/?d?u?p?t?(r)/ /n??tb?k/
)工具及其相關依賴項,接下來我們簡單介紹一下 Jupyter Notebook
一個Web在線交互計算的工具集,及其安裝、配置、使用方法,給各位初次學習機器的朋友做一個指引!
溫馨提示:作者機器學習相關筆記會更新在《AIGC學習之路》專欄,此專欄內容默認你已經具備基礎 Python 編程能力,同時學習過高等數學、線性代數、概率論等大學本科范圍的數學知識。如果忘記了不用擔心,會逐步幫助你記起來。
溫馨提示:若各位看友在其他平臺看到此篇文章,一定要關注公眾號【全棧工程師修煉指南】進行持續學習!我們一同學習,一起進步,關注后回復【加群】喲!
原文鏈接:機器學習筑基篇,Jupyter Notebook 精簡指南前面我們已經在機器學習工作站中安裝Anaconda工具包,其中也包含了jupyter Notebook工具及相關依賴項,接下來簡單介紹一下其工具作為一個Web在線交互計算的工具集,及其安裝、配置、使用方法,給各位初次學習機器的朋友做一個指引https://mp.weixin.qq.com/s/hL53OO2unouuWJxeZeyVcQ
1.背景
如果你從零基礎學習過 Python 編程語言,可能聽說過 IPython,它是一種基于 Python 的交互式解釋器, 相較于原生的 Python Shell,IPython 提供了更為強大的編輯和交互功能, 隨著其發展推出了 IPython Notebook,它完整地繼承了 IPython 的交互式特性,同時以 Web 形式運行,它的出現讓數據分析和機器學習的過程變得高效。
再之后,在谷歌、微軟等互聯網巨頭的贊助下,IPython Notebook 發展成為更加成熟和完善的開源項目,并更名為 Jupyter Notebook 并且已經成為現代處理數據的必備工具。
從數據清理、數據可視化、數據分析,再到后面的建立機器學習或深度學習模型,都可以在 Jupyter Notebook 完成。同時,Jupyter Notebook 可以保留代碼運行后的結果,方便內容的重用,以及回顧做過的工作。
文章來自公眾號【全棧工程師修煉指南】,請大家多多支持!
2.介紹 Jupyter Notebook
什么是 Jupyter Notebook?
Jupyter Notebook (以前稱為 IPython Notebook )是用于跨所有編程語言進行交互式計算的免費軟件、開放標準和web服務,它允許用戶將代碼、注釋、方程式、可視化內容等整合到一個文檔中,并支持多種編程語言,如 Python、R、Julia 等高級編程語言。它在數據科學、機器學習、深度學習、人工智能和教育領域中得到了廣泛的應用。
官網地址:https://jupyter.org/
3.安裝 Jupyter Notebook
描述: 你可以參考官方文檔進行安裝 Jupyter Notebook ,不過此處作者的建議是使用 Anaconda 工具包進行安裝,正如作者前一篇文章中的實踐流程,除此之外,你還可以在本地使用 pip
安裝 Jupyter Notebook,或者在瀏覽器中使用 GetVM
提供的 Jupyter Notebook 在線環境。
方式1. 使用 Anaconda 工具包安裝,參考文章: 《機器學習筑基篇,Ubuntu 24.04 安裝使用 Anaconda 工具包》,此處UP主選擇的方式。
方式2. 使用 pip 安裝,依賴于 Python 環境請自行安裝,官網文檔 https://jupyter.org/install
#?Install?the?classic?Jupyter?Notebook?with:
pip?install?notebook#?To?run?the?notebook:
jupyter?notebook
方式3. 使用 GetVM 提供的 Jupyter Notebook 在線環境,免費計劃每天有5次(每次半小時)的使用時間,滿足低頻日常學習的需求,同時為了避免被挖礦等濫用行為,開發者增加了網絡限制,從而不能訪問外網。
GetVM 是一個 Google Chrome 瀏覽器擴展,它可以幫助你在瀏覽器中快速創建一個 Linux 虛擬機,與本地環境完全隔離。你可以選擇直接打開預設模板,例如 Jupyter Notebook,VS Code,Ubuntu Desktop 等。地址:https://getvm.io
4.配置 Jupyter Notebook
描述:由于UP主是通過 Anaconda 工具包安裝的 Jupyter Notebook,其默認的監聽地址和端口為 localhost:8888
因此只能本地訪問,若其他主機設備需要訪問,則需要重新配置一下 Jupyter Notebook 的監聽地址和端口,同時為了安全起見,需要配置一下 Jupyter Notebook 的密碼,避免非授權用戶通過端口訪問。
操作步驟
Step 1.進入 Conda 環境中,執行如下命令生成 Jupyter Notebook 配置文件。
(base)?weiygeek@Super-Server:~/桌面$?jupyter?notebook?--generate-config
Writing?default?config?to:?/home/weiygeek/.jupyter/jupyter_notebook_config.py
Step 2.生成 Jupyter Notebook 的訪問密碼文件,打開獲取密碼的 Hash 值。
(base)?weiygeek@Super-Server:~/桌面$?jupyter?notebook?password#?Enter?password:?weiyigeek.top#?Verify?password:?weiyigeek.top#?[JupyterPasswordApp]?Wrote?hashed?password?to?/home/weiygeek/.jupyter/jupyter_server_config.json?(base)?weiygeek@Super-Server:~/桌面$?cat?/home/weiygeek/.jupyter/jupyter_server_config.json#?"IdentityProvider":?{#???"hashed_password":?"argon2:$argon2id$v=19$m=10240,t=10,p=8$ts7wW8G8A+qywpvi2A0qzg$DcOg7yWmOkwaebT90pItoJARMdAwGn80KbWjWTpoYOE"#?}
Step 3.修改 Jupyter Notebook 配置文件,添加如下內容。
(base)?weiygeek@Super-Server:~/桌面$?vim?/home/weiygeek/.jupyter/jupyter_notebook_config.py
(base)?weiygeek@Super-Server:~/桌面$?grep?-v?"#"?/home/weiygeek/.jupyter/jupyter_notebook_config.py?|?sed?'/^$/d'#?關鍵配置
#?配置?工作目錄
c.JupyterNotebookApp.workspaces_dir?=?'/home/weiygeek/notebook'
#?配置?監聽地址及端口
c.ServerApp.ip?=?'0.0.0.0'
c.ServerApp.port?=?8888
#?配置?Jupyter?Notebook?的訪問密碼
c.PasswordIdentityProvider.hashed_password??=?'argon2:$argon2id$v=19$m=10240,t=10,p=8$ts7wW8G8A+qywpvi2A0qzg$DcOg7yWmOkwaebT90pItoJARMdAwGn80KbWjWTpoYOE'
c.PasswordIdentityProvider.password_required?=?True
Step 4.最后啟動執行如下命令 Jupyter Notebook
啟用服務,此處便可通過工作站主機IP+端口進行訪問,之后輸入認證密碼,即可訪問到Jupyter Notebook
主界面。
(base)?weiygeek@Super-Server:~/桌面$?jupyter?notebook
4.使用 Jupyter Notebook
1.創建一個新的Note Book
前面設置了 Jupyter Notebook 默認工作目錄為 /home/weiygeek/notebook
里面是空的,現在我們創建一個新的 Note Book,點擊右上角的 “New” 按鈕來新建一個ipynb 文件,并從下拉菜單中選擇一個內核(通常是 Python 3),這將創建一個新的 Notebook,并自動打開一個新的標簽頁。
因為 jupyter Notebook 支持多種數據可視化庫,如 matplotlib、seaborn、plotly 等,這里使用 matplotlib 繪制一個簡單的折線圖。
import?matplotlib.pyplot?as?plt??#?創建一些數據??
x?=?[1,?2,?3,?4,?5]??
y?=?[2,?4,?6,?8,?10]??#?繪制折線圖??
plt.plot(x,?y)??
plt.title('Simple?Line?Plot')??
plt.xlabel('X?Axis')??
plt.ylabel('Y?Axis')??
plt.show()
2.編寫和運行代碼
在新的 Notebook 中,你會看到一個空的代碼單元格,每一個單元格會有三種模式,分別是 Markdown
(md) 和 Code
(代碼)以及 Raw
(文本),內容說明一般都是以 Markdown 單元格展示,而你需要動手練習的代碼將在 Code 單元格中執行;每個單元格的后面提供了一個菜單欄,可以對單元格進行操作,這些菜單欄包括了單元格的復制、上移、下移、刪除等操作。
假如,你需要切換單元格運行模式,可通過頂部的選項來切換單元格的模式,也可以點擊單元格頭部使用快捷鍵 M
切換到 Markdown 模式,使用快捷鍵 Y
切換到 Code 模式,使用快捷鍵 R
切換到 Raw 模式。
假如,你要運行在這個單元格中編寫Py代碼,只需按 Shift + Enter
運行它,你也可以按 Ctrl + Enter
運行代碼并在下方插入一個新的單元格,代碼執行結果將直接顯示在下方的單元格輸出區域中。
# 1.選中編輯 Markdown單元格,運行(Shift + Enter)此單元格時,它會被渲染成格式化的文本。
#?機器學習第一課這是一個 Markdown 單元格的示例。??-?無序列表項?1??
-?無序列表項?2??[鏈接到?Google](https://www.google.com)??這是一個數學方程:??$$e^{i\pi}?+?1?=?0?
$$#?2.選中單元格,并按?Shift?+?Enter
print('hello?world!')
例如,在 Jupyter Notebook 中,你可以像在任何 Python 腳本中一樣導入庫和加載數據,這里,你可以使用 pandas 庫來加載 CSV 文件:
#?導入模塊
import?pandas?as?pd??#?加載?CSV?文件??
data?=?pd.read_csv('test.csv')??#?顯示數據的前幾行??
display(data.head())
3.單元格順序執行
無論是 Markdown 單元格,還是 Code 單元格,它們在課程中都是按照從上到下的順序依次執行的。后面的單元格需要等待前面的單元格執行完成后,才能繼續執行。執行完成的單元格左側會出現 In [序號] 的標志,例如:
a?=?2
b?=?10#?需要先執行上方單元格給?a,b?變量賦值才能執行我呢~
c?=?a?**?b#?輸出結果
print(c)
溫馨提示:為了方便,Jupyter Notebook 中的 print() 打印操作并不是必須的,例如上方的單元格, a ** b 就能直接輸出結果。
4.代碼補全
在 Jupyter Notebook 中,可以通過 Tab 鍵激活代碼補全功能,例如
#?當我們在使用?import?導入模塊時,只需輸入?im?,然后按?Tab?鍵
im#?若要某個模塊下包含函數的自動補全,必須要導入模塊之后才會生效。
import?numpy?as?np
#?使用 Tab 鍵自動補全 np. 下面的類和相關函數。?
np.#?實例
a?=?np.array([1,?2,?3])
b?=?np.array([4,?5,?6])
a?+?b
#?array([5,?7,?9])a?=?np.array([[1,??2],??[3,??4]])??
print?(a)
[[1?2][3?4]]
5.函數說明
在 Jupyter Notebook 中,可以通過【鼠標點擊導入包的函數
】并按 shift + tab
查看函數幫助說明功能,例如
#?運行導入?pprint?模塊
import?pprint
#?執行模塊中的?pprint?函數
pprint.pprint([1,2,3,4,5,'w',"weiyigeek"])#?鼠標點擊至?pprint.pprint?并按?shift?+?tab?查看使用建議
Signature:
pprint.pprint(object,stream=None,indent=1,width=80,depth=None,*,compact=False,sort_dicts=True,underscore_numbers=False,
)
Docstring:?Pretty-print?a?Python?object?to?a?stream?[default?is?sys.stdout].
File:??????/data/anaconda3/lib/python3.12/pprint.py
Type:??????function
6.執行狀態
描述:對于復雜度高的代碼,往往會意味著更長的執行等待時間。在 Jupyter Notebook 中,當一個單元格處于執行狀態時,單元格前面會出現 In [*]
符號,只有執行完成的單元格, [] 中的 * 才會變成相應的序號。
除此之外,你可以通過頁面右上角的 Kernel 狀態指示器判斷內核占用情況。如果 Python 字符右邊出現了實心圓圈 ?
,代表內核處于占有狀態。而空心圓圈 ?
則代表內核處于空閑狀態。當然也可能出現鏈接斷開的符號,那就代表著內核已經斷開鏈接,你可能需要刷新頁面或重啟實驗環境。
例如,我們遍歷一個鏈表數組,每兩秒打印其中一個元素,查看狀態的變化!
import?time
languages?=?["C",?"C++",?"Perl",?"Python","Go"]?
for?x?in?languages:time.sleep(2)print?(x)
7.重啟內核
描述:當復雜代碼執行時間過長,可能會造成實驗環境資源占用大而 Notebook 出現「假死」的現象,此時我們可以通過重啟內核的操作來解決,重啟內核的按鈕在環境的頂部,點擊 🔁 樣式按鈕后會彈出確認對話框,點擊 Restart 即可。
8.強制終止
有的時候,如果代碼運行時間過長,或者陷入死循環,我們會想到強制終止單元格的運行狀態。此時,頂部的 ? 按鈕就發揮作用了。
例如,運行下方無限循環代碼,并執行強制終止操作。
import?time
while?True:print("hello,?shiyanlou.")time.sleep(1)
9.保存和共享
你可以通過點擊工具欄中的 “Save” 按鈕來保存你的 Notebook,Notebook 將保存為一個 .ipynb 文件,該文件包含了你的代碼、輸出、Markdown 文本和任何嵌入的可視化內容。
要共享你的 Notebook,你可以將其導出為 HTML、PDF 或其他格式,或者將其上傳到一個支持 Jupyter Notebook 的在線平臺(如 GitHub、GitLab、Google Colab 等)。這樣,其他人就可以在你的 Notebook 上運行代碼、查看結果和進行交互了。
更多 Jupyter Notebook 操作說明,請參考:Jupyter Notebook 官方文檔
文章來自公眾號【全棧工程師修煉指南】,請大家多多支持!
5.快捷鍵 jupyter Notebook
描述:為了提供我們在使用 ?Jupyter Notebook 進行機器學習的效率,我們有必要了解一些快捷鍵。
-
H
:查看所有快捷鍵。 -
S
:保存當前 Notebook 內容。 -
P
:調出 Notebook 命令欄。 -
B
:在當前單元格下方新建空白單元格。 -
M
:將單元格格式轉換為 Markdown。 -
Y
:將單元格格式轉換為 Code。 -
連續按
D+D
:刪除當前單元格。(慎用,推薦使用 X 剪切單元格代替,因為其可以起到刪除效果,且刪錯了還可以粘貼回來)。 -
連續按
I+I+I
:強制中止內核(當某個單元格執行時間較長或卡住時,可以強行中止,中止后前序單元格狀態依舊保留,非常好用)。 -
Shift + Enter
:運行當前單元格內容。(當 Markdown 單元格處于編輯狀態時,運行即可復原)。 -
Ctrl + Enter
: 運行代碼并在下方插入一個新的單元格。 -
Tab
: 模塊函數代碼自動補全。 -
Shift + Tab
: 鼠標點擊函數,在按下此快捷點即可查看函數幫助說明功能。
溫馨提示:所有快捷鍵觸發式,需保證單元格處于選中狀態,而非編輯狀態。
6.總結
Jupyter Notebook 是一個功能強大的工具,它提供了一個交互式和可重復的環境來編寫、運行和共享代碼和數據。通過本文的介紹,你應該已經了解了如何安裝配置 Jupyter Notebook,并掌握了其基本使用方法。現在,你可以開始使用 Jupyter Notebook 來探索數據、構建模型、進行可視化等任務了。
溫馨提示:作者最近10年的工作學習筆記(涉及網絡、安全、運維、開發),需要學習實踐筆記的看友,可添加作者賬號[WeiyiGeeker],當前價格¥199,除了獲得從業筆記的同時還可進行問題答疑以及每月遠程技術支持,希望大家多多支持,收獲定大于付出!
如果此篇文章對你有幫助,請你將它轉發給更多的人!
?學習推薦?往期文章
-
🔥【最新】機器學習筑基篇,Ubuntu 24.04 安裝使用 Anaconda 工具包
-
💡【相關】Python實踐之使用pytorch模型學習框架easyocr模塊批量識別大數據通信行程碼圖片并使用Flask返回json字符串
-
💡【相關】一圖對比,Python 與 Java 語言代碼運行機制
感覺文章不錯的童鞋,請幫忙轉發,點 👍、在看,若有疑問的小伙伴,可在評論區留言你想法喲💬!