最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Jupyter Notebook中%time和%timeit的使用詳解

 更新時(shí)間:2023年02月27日 09:36:58   作者:寧萌Julie  
本文主要介紹了Jupyter Notebook中%time和%timeit的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

本文介紹 Jupyter Notebook 中用于計(jì)算運(yùn)行時(shí)間的魔法命令 ( magic commands ) %time 和 %timeit 。

1.%time 或 %timeit:計(jì)算當(dāng)前行的代碼運(yùn)行時(shí)間。

%time 的計(jì)算結(jié)果包括:CPU time(CPU運(yùn)行程序的時(shí)間), Wall time(Wall Clock Time,墻上掛鐘的時(shí)間,也就是我們感受到的運(yùn)行時(shí)間)。

%timeit 計(jì)時(shí)更為精確,這一命令會(huì)運(yùn)行代碼 r 次,每次 n 遍,再對(duì) n*r 遍的結(jié)果取平均后,得到運(yùn)行一遍代碼的時(shí)間。

舉個(gè)例子來(lái)看看吧,以列表的循環(huán)計(jì)算為例,先看 %time 的計(jì)算:

nums1=list(range(10000))
%time nums2=[i+5 for i in nums1]

這里我們用 %time 計(jì)算一下第二行代碼,也就是對(duì)列表中每個(gè)元素的值加 5 的運(yùn)行時(shí)間,結(jié)果為:

Wall time: 998 µs

我的電腦上不知怎么回事,只顯示了 Wall time 。

再來(lái)看 %timeit 的計(jì)算:

nums1=list(range(10000))
%timeit nums2=[i+5 for i in nums1]

結(jié)果為:

645 µs ± 45.3 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

如上所示,使用 %timeit 計(jì)時(shí)會(huì)運(yùn)行 r 次(默認(rèn)值 r=7), 每一次運(yùn)行 n 遍的 n 則是由系統(tǒng)根據(jù)代碼確定一個(gè)合適的值,這里 n=1000,最后對(duì)所有計(jì)時(shí)結(jié)果取平均得到運(yùn)行一遍代碼的時(shí)間。

也可以使用 %timeit -r R -n N,以自定義的設(shè)置(運(yùn)行R次,每一次N遍)來(lái)運(yùn)行代碼并計(jì)時(shí)。例如:

nums1=list(range(10000))
%timeit -r 5 -n 400 nums2=[i+5 for i in nums1]

就是對(duì)代碼運(yùn)行 5 次, 每次 400 遍,最后對(duì)所有計(jì)時(shí)結(jié)果取平均,得到運(yùn)行一遍代碼的時(shí)間。結(jié)果如下:

705 µs ± 60.1 µs per loop (mean ± std. dev. of 5 runs, 400 loops each)

2.%%time 或 %%timeit:計(jì)算當(dāng)前單元(cell)的代碼運(yùn)行時(shí)間。

%%time 與 %time , %%timeit 與 %timeit 的計(jì)算方式相同,區(qū)別在于 % 是用于單行代碼的命令,%% 是應(yīng)用于當(dāng)前單元的命令。

需要注意的是,%%time 或者 %%timeit 必須在當(dāng)前單元的第一行。 并且,%%time 后不能跟代碼。例如:

%%time 
nums1=list(range(10000))
nums2=[i+5 for i in nums1]

結(jié)果為:

Wall time: 1.99 ms

%%timeit 后面可以跟代碼,這行代碼會(huì)運(yùn)行、但不會(huì)計(jì)入時(shí)間,從第二行開(kāi)始計(jì)時(shí)。例如:

%%timeit nums1=list(range(10000))
nums2=[i+5 for i in nums1]

結(jié)果為:

685 µs ± 47 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

可以看到,這一結(jié)果與前面使用行命令 %timeit 的結(jié)果相近,因?yàn)?%%timeit 之后的代碼nums1=list(range(10000)) 運(yùn)行但是不計(jì)時(shí)。

再來(lái)看看 %%timeit 單獨(dú)放在第一行的結(jié)果:

%%timeit 
nums1=list(range(10000))
nums2=[i+5 for i in nums1]

結(jié)果為:

800 µs ± 52 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

這種情況下,會(huì)對(duì)代碼 nums1=list(range(10000)) 計(jì)時(shí),因此運(yùn)行時(shí)間更長(zhǎng)一點(diǎn)。

參考:

1.Ipython幫助文檔對(duì)于 %time 和 %timeit的講解

2.stackoverflow關(guān)于 %timeit 的一個(gè)問(wèn)答,介紹了 %timeit 和 %%timeit

到此這篇關(guān)于Jupyter Notebook中%time和%timeit的使用詳解的文章就介紹到這了,更多相關(guān)Jupyter Notebook %time和%timeit內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

新巴尔虎右旗| 元阳县| 汉沽区| 花莲县| 建瓯市| 湾仔区| 射洪县| 晋城| 东丰县| 广丰县| 南和县| 辉县市| 德令哈市| 新余市| 洱源县| 冀州市| 达拉特旗| 钟祥市| 金沙县| 赞皇县| 体育| 和田县| 万年县| 平顶山市| 明溪县| 高青县| 衡南县| 电白县| 隆安县| 安福县| 惠安县| 额尔古纳市| 封丘县| 望都县| 杂多县| 湖北省| 公主岭市| 班戈县| 慈利县| 故城县| 吉隆县|