全文共3275字,預(yù)計(jì)學(xué)習(xí)時(shí)長(zhǎng)6分鐘
用一張美圖吸引你!
想讓自己的數(shù)據(jù)分析能力更上一層樓嗎?本文可以幫助你形成一個(gè)“每日加速提升數(shù)據(jù)分析能力清單”。
#1: Pandas Profiling
這一工具的優(yōu)點(diǎn)顯而易見。以下動(dòng)畫是使用df.profile_report()這一簡(jiǎn)單方法的結(jié)果。請(qǐng)自行觀看成果展示;
使用此工具只需安裝和導(dǎo)入Pandas Profiling程序包即可。
#2: 使用Cufflinks和Plotly繪制Panda數(shù)據(jù)
大多所謂的“經(jīng)驗(yàn)豐富的”數(shù)據(jù)科學(xué)家或數(shù)據(jù)分析師都對(duì)matplotlib和 pandas的協(xié)同非常熟悉。也就是說,他們可以通過使用.plot()函數(shù)快速繪制pd.DataFrame或pd.Series圖像。
有點(diǎn)無聊是吧?
現(xiàn)在就好了。如何做一個(gè)交互型全景式可縮放的圖像呢?Cufflinks 可以做到!(由 Plotly提供)
在系統(tǒng)中安裝Cufflinks即可! 快速安裝Cufflinks ——在自己最喜歡的終端進(jìn)行更新即可。可以觀看以下動(dòng)畫:
好多了!
注意,唯一會(huì)改變以上結(jié)果的是對(duì)Cufflinks輸入并設(shè)置cf.go_offline() 函數(shù)。其余的只是把.plot()改成.iplot()。
其他像.scatter_matrix()這樣的函數(shù)會(huì)帶來不錯(cuò)的可視化圖像:
酷斃了!
希望從事大量數(shù)據(jù)可視化工作的朋友都看一看有關(guān)的Cufflinks和Plotly內(nèi)容,從中可以找到大量方法!
#3: IPython Magic Commands
IPython 的Magics本質(zhì)上就是IPython堆疊在Python語法頂端的一系列加強(qiáng)功能。Magic commands有兩種:其一為line magics,用%作為前綴表示,在一行輸入的代碼上運(yùn)行;而 cell magics用%%作為前綴表示,在多行輸入的代碼上運(yùn)行。以下是Magics的一些實(shí)用函數(shù):
%lsmagic: 應(yīng)有盡有。
不妨先嘗試一些傳統(tǒng)卻好用的方法。如果只記得一條Magic Command,估計(jì)就是它了。執(zhí)行%lsmagic將會(huì)出現(xiàn)所有可用的Magic Commands列表:
%debug: 交互程序調(diào)試
這估計(jì)是Magic Command使用頻次最高的了。
大多人都試過:程序員執(zhí)行一個(gè)代碼塊,而這個(gè)代碼塊一直出錯(cuò)。絕望中的程序員為了輸出每一變量的內(nèi)容,寫下20 print()一類代碼。然后當(dāng)程序員終于修復(fù)了問題時(shí),就不得不回過頭刪除所有列出的函數(shù)。
然而現(xiàn)在不用了!只需在遇到問題的時(shí)候執(zhí)行%debug,就可以執(zhí)行任意一部分代碼了:
那么,總結(jié)一下以上內(nèi)容:
1. 有一個(gè)函數(shù),它將一個(gè)列表作為輸入,并平方所有偶數(shù)。
2. 運(yùn)行函數(shù),某處出現(xiàn)錯(cuò)誤。但無法找到錯(cuò)誤。
3. 出錯(cuò)時(shí)把%debug命令標(biāo)記到函數(shù)中。
4. 讓調(diào)試程序顯示x以及type(x)的值。
5. 由此找到了錯(cuò)誤:6被當(dāng)作了一行字符串!
可以想象,這一命令對(duì)更多更復(fù)雜的函數(shù)都大有用處!
%store: 在notebooks間互傳變量
這個(gè)命令也很棒。首先說一說起因。程序員花時(shí)間清理了notebook中的一些數(shù)據(jù),現(xiàn)在要測(cè)試另一notebook中的一些函數(shù),因此既需要在同一notebook中實(shí)現(xiàn)函數(shù)功能,又要將其放到另一notebook中。用%store只要存儲(chǔ)變量,并在任一notebook中檢索即可:
%store [variable]存儲(chǔ)變量。
%store -r [variable]閱讀/檢索已存儲(chǔ)的變量。
%who: 羅列所有變量。
是否曾將某個(gè)值賦到一個(gè)變量上但忘了變量名稱?是否不小心刪除了賦值給變量的單元格?有了%who,就可以獲得所有已賦值的變量:
%%time: 魔法定時(shí)。
有了這個(gè)命令,就可以獲得一切所需的定時(shí)信息。只要將%%time應(yīng)用到任何一段可執(zhí)行的代碼中,就可以獲得如下輸出:
24微秒。馬馬虎虎吧。
%%writefile: 將單元格內(nèi)容編輯到文檔。
這是本文的最后一個(gè)命令。當(dāng)已經(jīng)在notebook中寫了一些復(fù)雜的函數(shù)或其類別,而想要將其從notebook中分離存到文件中去時(shí),這個(gè)命令非常有用。只需為函數(shù)或其類別添加前置%%writefile,然后添加文件名儲(chǔ)存即可:
如圖所示,可以直接將創(chuàng)建的函數(shù)儲(chǔ)存到 “utils.py” 文件夾中,以任意形式導(dǎo)入函數(shù)即可。在其他notebook中也是這樣!(只要都在utils.py文件夾的同一個(gè)目錄中)
#4: Jupyter中的絢麗格式
這個(gè)非常棒!基本上,Jupyter允許在markdown單元格中設(shè)置一些HTML / CSS格式。這是一些常用的:
憂郁而時(shí)髦的:
<div class='alert alert-block alert-info'>
This is <b>fancy</b>!
</div>
熱血而稍顯痛苦的:
<div class='alert alert-block alert-danger'>
This is <b>baaaaad</b>!
</div>
青澀而平靜的:
<div class='alert alert-block alert-success'>
This is <b>gooood</b>!
</div>
此處為操作動(dòng)畫:
當(dāng)要以notebook形式展示成果時(shí),這些命令非常有用!
#5: Jupyter的快捷鍵
學(xué)習(xí)了鍵盤快捷鍵后,可以使用命令面板:Ctrl + Shift + P。這一操作可以直接喚起notebook中的函數(shù)列表。以下為部分基礎(chǔ)命令:
Esc: 使用這一快捷鍵可直接切換到命令模式。這也是用方向鍵在notebook中導(dǎo)航的方式。
處于命令模式時(shí):
· A和B:鍵入新單元格,上移([A]bove)或下移([B]elow)現(xiàn)有單元格。
· M: 將現(xiàn)有單元格markdown( [M]arkdown)。
· Y: 將現(xiàn)有單元格改為代碼。
· D,D:確認(rèn)刪除 ([D]efinetly [D]eletes)現(xiàn)有單元格。
Enter: 對(duì)現(xiàn)有單元格進(jìn)行返回編輯模式的操作。
處于編輯模式時(shí):
· Shift + Tab:給鍵入現(xiàn)有單元格的目標(biāo)顯示Docstring (文檔字符串) —— 長(zhǎng)按快捷鍵切換文檔模式。
· Ctrl + Shift + -:將現(xiàn)有單元格從光標(biāo)停留處分離。
· Esc + F:查找替換不含輸出的代碼。
· Esc + O:切換單元格輸出。
選擇多個(gè)單元格:
· Shift + Down和Shift + Up: 向下或向上選擇下一個(gè)單元格。個(gè)人認(rèn)為可以使用演繹法進(jìn)行判別。
· Shift + M: 合并選中的單元格。
· 請(qǐng)注意,一旦單元格被選中,則可以批量刪除/復(fù)制/粘貼/運(yùn)行。
#6: Jupyter (或IPython)每一單元格的多種輸出
這個(gè)也不錯(cuò)。是否曾經(jīng)想顯示pandas數(shù)據(jù)幀(DataFrame)的the .head()和 the .tail()?但是卻半途而廢,因?yàn)橐獎(jiǎng)?chuàng)建一個(gè)額外的代碼單元格去運(yùn)行.tail() ,這太麻煩了。別再害怕了,現(xiàn)在使用下列代碼可以顯示所有想要的輸出:
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = 'all'
看,多個(gè)輸出的實(shí)力在此:
小菜一碟
#7:不斷擴(kuò)充自己的Jupyter notebook
使用 RISE,就可以將Jupyter Notebook陸續(xù)轉(zhuǎn)化為幻燈片形式。最棒的是,notebook仍是可用的,所以可以實(shí)現(xiàn)文稿演示的同時(shí)實(shí)時(shí)編碼!
根據(jù)個(gè)人系統(tǒng)環(huán)境,通過conda或者pip都可以安裝 RISE以使用該工具:
conda install -c conda-forge rise
/// OR ///
pip install RISE
現(xiàn)在就可以點(diǎn)擊新按鈕從notebook中創(chuàng)建完美的演示文稿了:
聯(lián)系客服