Jupyter Notebook数据科学高效技巧
摘要:?本文有一些關(guān)于Jupyter?Notebook的干貨,希望看完文章可以給你帶來(lái)收獲
當(dāng)我學(xué)習(xí)有關(guān)深度學(xué)習(xí)的優(yōu)秀的fast.ai課程時(shí),我學(xué)到了很多適用于通用軟件工程的干貨。我寫這篇文章是為了總結(jié)這些技巧并與你分享。
1.Jupyter Notebook拓展
標(biāo)準(zhǔn)的Jupyter Notebook很不錯(cuò),但是還有更多的擴(kuò)展功能可以幫助你完成工作,并且可以將許多功能結(jié)合在一起。
Install Jupyter extension package
# Install Jupyterextension packagepip install jupyter_contrib_nbextensionsjupyter contrib nbextension install a€” user# Install configuratorpip install jupyter_nbextensions_configurator# Install themepip install jupyterthemes## Change theme (This is my default)''' Note that you need to use 1 command to configure thesetting, if you do 2 jt command, the second one will replacethe first one.'''jt -t grade3 -T你可以在這里找到更多Jupyter主題。安裝配置器后,你會(huì)看到有一個(gè)新的“Nbextensions”選項(xiàng)卡。獲取這些項(xiàng)目打勾
1.Autopep8
2.Collapsible Headings
3.Gist-it
A.?Collapsible Headings
現(xiàn)在你可以折疊你的筆記本,而不是滾動(dòng)無(wú)窮的代碼。根據(jù)我的經(jīng)驗(yàn),在進(jìn)行探索性數(shù)據(jù)分析和繪制圖表時(shí),我寫了很多不干凈的代碼,我必須非常努力地滾動(dòng)才能到達(dá)目的地。你可以展開(kāi)單元格或折疊單元格以使其更清晰。我想你甚至可以做一個(gè)目錄(我還沒(méi)有嘗試過(guò)這個(gè)擴(kuò)展)。
B.?Gist-it
如果你以前使用過(guò)Gist,它基本上是一個(gè)讓你共享筆記本的地方。當(dāng)你想要共享你的代碼時(shí),這是非常有用的,特別是當(dāng)你有bug并且想要共享它的時(shí)候。只要按一下按鈕,一切就會(huì)在幾秒鐘內(nèi)完成。
默認(rèn)情況下,它將發(fā)布一個(gè)匿名的Gist,如果你想用Github帳戶發(fā)布它,你需要生成一個(gè)令牌認(rèn)證。主要的區(qū)別是,如果你用自己的帳號(hào)發(fā)表文章,你可以編輯你的要點(diǎn)。
我在這篇文章中使用的筆記本在此。
https://gist.github.com/a0d020c17ce1715bf1d031b1cb8a9fa4
C.?Autopep8
造型很重要,但也很無(wú)聊。如果你不想太用力,只要按一下這個(gè)小按鈕,它就會(huì)為你做所有的間隔!(PEP8是Python代碼的風(fēng)格指南)
2.把時(shí)間花在你的任務(wù)上,并從中吸取教訓(xùn)!
我一直在聲明循環(huán)之前的開(kāi)始時(shí)間,減去當(dāng)前時(shí)間來(lái)獲得運(yùn)行時(shí)間。這并沒(méi)有錯(cuò),但你可以讓它變得更容易。使用內(nèi)置的魔法命令。它們對(duì)你來(lái)說(shuō)可能不自然,但使用起來(lái)真的很方便。(魔法命令以%開(kāi)始)
讓我們從一個(gè)簡(jiǎn)單的函數(shù)開(kāi)始。它計(jì)算的是最后一個(gè)小于n的Fibonacci數(shù)。
你可以使用%time來(lái)計(jì)時(shí)一次運(yùn)行或函數(shù)%timeit來(lái)計(jì)時(shí),并得到平均值和標(biāo)準(zhǔn)偏差。這對(duì)于這些簡(jiǎn)單的函數(shù)很有用,那么調(diào)用另一個(gè)函數(shù)的函數(shù)呢?
這里是%prun,我創(chuàng)建了一個(gè)虛函數(shù),可以很長(zhǎng)時(shí)間調(diào)用fib1()。你可以看到循環(huán)確實(shí)花了一些時(shí)間,但大部分時(shí)間都花在了fib1()上。
3.Cython
Cython是一個(gè)允許你用python編譯C的包,這是numpy和pandas速度很快的主要原因。確保你已經(jīng)通過(guò)Cython安裝
pip install cython在不改變?nèi)魏未a的情況下,你可以獲得即時(shí)的雙重性能!這很好,但一點(diǎn)也不神奇。
(感謝James Martini先前指出了fib3中的一些錯(cuò)誤!)
從582到48納秒,速度提高了10倍,而且你實(shí)際上不需要更改很多腳本。對(duì)我來(lái)說(shuō),這是令人興奮的,因?yàn)榇蟛糠謺r(shí)間你都可以使用慢速代碼。你所關(guān)心的是一次次被呼來(lái)喚去的。使用%prun和一些Cython代碼,可以在不編譯任何文件的情況下獲得C速度。
除了魔法命令,我發(fā)現(xiàn)在Jupyter做shell命令也是非常有用的。(魔法命令以%開(kāi)始,shell命令以!開(kāi)始)
本文由@阿里云云棲社區(qū)組織翻譯。
文章原標(biāo)題《Jupyter Notebook Tricks for Data Science that Enhance your ejciency》
作者:Nok
譯者:董昭男,審校:。
原文鏈接
干貨好文,請(qǐng)關(guān)注掃描以下二維碼:
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
總結(jié)
以上是生活随笔為你收集整理的Jupyter Notebook数据科学高效技巧的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 阿里云 APM 解决方案地图
- 下一篇: 如何利用秒级监控进行mongodb故障排