五個(gè)Jupyter?Notebook實(shí)用魔法命令分享
Jupyter Notebook是一個(gè)開源的交互式編程環(huán)境,用于創(chuàng)建和共享包含實(shí)時(shí)代碼、文本、圖像和可視化輸出的文檔。
它交互式的編程方式是一大亮點(diǎn),因?yàn)槲覀冊(cè)跀?shù)據(jù)分析的過程中,常常是一邊分析,一邊看分析結(jié)果,根據(jù)分析結(jié)果再調(diào)整數(shù)據(jù)或者分析參數(shù)。
有了 Jupyter Notebook,代碼和運(yùn)行結(jié)果可以一起展示,省了很多來回切換的麻煩操作。
此外,它是基于Web的應(yīng)用程序,所以展示運(yùn)行結(jié)果的方式很豐富,不僅僅是文字,圖表等也一樣可以展示。
Jupyter Notebook不僅僅支持python語(yǔ)言,還支持其他幾種常用于數(shù)據(jù)分析的語(yǔ)言,比如 Julia,R 等等。
介紹如何使用Jupyter Notebook編程和寫文檔的文章很多,本篇主要介紹幾個(gè)使用Jupyter Notebook時(shí)常用的幾個(gè)魔法命令。
這些魔法命令主要提供一些額外的功能和控制Notebook環(huán)境的行為。
1. 文件和路徑
查看當(dāng)前路徑:
%pwd #運(yùn)行結(jié)果(環(huán)境不一樣,下面的路徑會(huì)不一樣): 'd:\\projects\\python\\notebooks'
魔法命令的結(jié)果還可以存儲(chǔ)到python變量中。
cur_path = %pwd print(cur_path) #運(yùn)行結(jié)果: 'd:\\projects\\python\\notebooks'
列出當(dāng)前文件夾下的文件:
%ls
這個(gè)命令在不同的系統(tǒng)中會(huì)自動(dòng)調(diào)用不同的命令,
比如在Linux系統(tǒng)中,調(diào)用ls命令,在Windows系統(tǒng)中,會(huì)調(diào)用 dir 命令。
2. 自動(dòng)保存
隨時(shí)保存自己的代碼和文檔是好習(xí)慣,如果怕忘了保存,也可以設(shè)置Jupyter Notebook的自動(dòng)保存時(shí)間。
比如:
%autosave 10 #運(yùn)行結(jié)果 Autosaving every 10 seconds
每隔10秒會(huì)自動(dòng)保存一次。
3. 查看歷史
查看執(zhí)行過的歷史命令,這里不僅僅是歷史執(zhí)行的魔法命令,也包括執(zhí)行過的python代碼。
%history
通過復(fù)制歷史命令,我們?cè)俅螆?zhí)行之前的命令或代碼時(shí),不用再輸入一遍。
如果歷史命令太多,也可以指定只顯示最近的N條命令:
%history -l 3 #只顯示最近3條命令
4. 性能檢測(cè)
數(shù)據(jù)分析時(shí),經(jīng)常接觸到數(shù)量龐大的數(shù)據(jù)。
編寫分析代碼處理龐大的數(shù)據(jù)時(shí)遇到性能問題是常事,Jupyter Notebook有兩個(gè)魔法命令可以幫助我們定位性能問題。
第一個(gè)是 %time,能夠顯示函數(shù)運(yùn)行時(shí)間的相關(guān)信息:
def sum(n):
s = 0
for i in range(n):
s += i
return s
%time sum(100000)
%time sum(200000)
#運(yùn)行結(jié)果
CPU times: total: 93.8 ms
Wall time: 87.9 ms
CPU times: total: 172 ms
Wall time: 168 ms其中,
CPU time是程序在處理器上實(shí)際運(yùn)行的時(shí)間Wall time是程序從開始執(zhí)行到結(jié)束所花費(fèi)的時(shí)間(包括了等待資源、I/O 操作等與CPU 時(shí)間無關(guān)的時(shí)間)
上面的示例中,第二次的運(yùn)算量是第一個(gè)的兩倍,耗費(fèi)的時(shí)間也差不多是兩倍。
除了 %time,還有一個(gè) %timeit 命令,
它會(huì)統(tǒng)計(jì)多次運(yùn)行后的結(jié)果,得到的結(jié)果更加可靠一些。
def sum(n):
s = 0
for i in range(n):
s += i
return s
%timeit sum(1000000)
#運(yùn)行結(jié)果
63.9 ms ± 2.97 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)運(yùn)行結(jié)果的含義如下:
63.9 ms是運(yùn)行時(shí)間的平均值2.97 ms是標(biāo)準(zhǔn)差,也就是運(yùn)行時(shí)間的上下浮動(dòng)范圍7 runs表示一共運(yùn)行了7輪10 loops each表示每輪循環(huán)運(yùn)行了10次
%timeit 運(yùn)行多少輪,以及每輪運(yùn)行多少次是可以設(shè)置的。
def sum(n):
s = 0
for i in range(n):
s += i
return s
%timeit -n 20 -r 10 sum(1000000)
#運(yùn)行結(jié)果
66.7 ms ± 4.75 ms per loop (mean ± std. dev. of 10 runs, 20 loops each)-r 參數(shù)指定運(yùn)行多少輪,-n參數(shù)指定每輪運(yùn)行多少次。
5. 繪圖相關(guān)
最后,介紹在Jupyter Notebook中使用matplotlib繪圖時(shí)用到的魔法命令。
5.1. 直接顯示
%matplotlib inline,直接顯示在代碼的下方,這也是最常用的方式。
import matplotlib.pyplot as plt import numpy as np %matplotlib inline x = np.arange(0, 10, 1) y = x*x + 2 plt.plot(x, y) plt.show()

5.2. 使用 TK 繪制
%matplotlib tk,會(huì)彈出新的窗口顯示圖形,并且圖形可以交互。
import matplotlib.pyplot as plt import numpy as np %matplotlib tk x = np.arange(0, 10, 1) y = x*x + 2 plt.plot(x, y) plt.show()

紅色框標(biāo)出的就是交互的按鈕。
5.3. 使用 notebook 繪制
%matplotlib notebook和使用tk是類似的,只是不彈出新的窗口。
import matplotlib.pyplot as plt import numpy as np %matplotlib notebook x = np.arange(0, 10, 1) y = x*x + 2 plt.plot(x, y) plt.show()

這種方式同樣是可以交互的。
到此這篇關(guān)于五個(gè)Jupyter Notebook實(shí)用魔法命令分享的文章就介紹到這了,更多相關(guān)Jupyter Notebook魔法命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Python pyecharts實(shí)現(xiàn)多種圖例代碼解析
這篇文章主要介紹了基于Python pyecharts實(shí)現(xiàn)多種圖例代碼解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
python實(shí)現(xiàn)修改xml文件內(nèi)容
這篇文章主要介紹了python實(shí)現(xiàn)修改xml文件內(nèi)容,XML 指可擴(kuò)展標(biāo)記語(yǔ)言,是一種標(biāo)記語(yǔ)言,是從標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言(SGML)中簡(jiǎn)化修改出來的2022-07-07
python圖像處理-利用一行代碼實(shí)現(xiàn)灰度圖摳圖
這篇文章主要介紹了python圖像處理-利用一行代碼實(shí)現(xiàn)灰度圖摳圖,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
python安裝包出現(xiàn)Retrying?(Retry(total=4,?connect=None,?read=No
這篇文章主要給大家介紹了關(guān)于python安裝包出現(xiàn)Retrying?(Retry(total=4,?connect=None,?read=None,?redirect=None,?status=None))問題的解決方法,需要的朋友可以參考下2022-09-09
python解析mdf或mf4文件利器之a(chǎn)sammdf用法
這篇文章主要介紹了python解析mdf或mf4文件利器之a(chǎn)sammdf用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
Python讀取HTML中的canvas并且以圖片形式存入Word文檔
這篇文章主要介紹了Python讀取HTML中的canvas并且以圖片形式存入Word文檔,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08
Python使用py2neo操作圖數(shù)據(jù)庫(kù)neo4j的方法詳解
這篇文章主要介紹了Python使用py2neo操作圖數(shù)據(jù)庫(kù)neo4j的方法,結(jié)合實(shí)例形式詳細(xì)分析了Python使用py2neo操作圖數(shù)據(jù)庫(kù)neo4j的具體步驟、原理、相關(guān)使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2020-01-01

