????? 之前的文章里面談到過(guò),我從R轉(zhuǎn)到Python上,一個(gè)很大的不習(xí)慣就是R的數(shù)據(jù)結(jié)構(gòu)比較簡(jiǎn)單,但是Python的數(shù)據(jù)類(lèi)型比較多,很容易就令人頭腦混亂。但是今天學(xué)習(xí)了一下Udacity的課程,頓時(shí)就清楚多了。
???? Python最基礎(chǔ)的數(shù)據(jù)類(lèi)型包括數(shù)組、列表、字典比較常見(jiàn)的。而Numpy和Pandas的數(shù)據(jù)類(lèi)型是在基礎(chǔ)數(shù)據(jù)類(lèi)型上建立,彼此相關(guān),又彼此不同。
???? Numpy里面最基本的就是一維的對(duì)象np代指,這點(diǎn)我認(rèn)為和列表list基本沒(méi)有什么不同,很多操作(比如各種的for循環(huán))在list上實(shí)現(xiàn),同時(shí)也完全可以在numpy對(duì)象實(shí)現(xiàn)。但是numpy之所以是numpy,最重要的一點(diǎn)就是numpy向量化操作的特點(diǎn),這點(diǎn)和R語(yǔ)言里面還是比較類(lèi)似,當(dāng)然Matlab幾乎也是向量化操作。比較基礎(chǔ)的就是加減乘除的運(yùn)算,當(dāng)然還有一點(diǎn)比較容易被忽略的就是np對(duì)象和if條件的使用。
???? 例如 a=np.array([1,2,3,4,-1,-2,-3,-4])? ,b=np.array([-1,3,9,0,-2,9,3,-5)],想要找到a,b里面到底有多少個(gè)對(duì)元素在相同位置上正負(fù)號(hào)一致?
??? 這里我要挖個(gè)坑,未來(lái)可能會(huì)做更多的練習(xí),會(huì)把我遇上的情況分享一下。
??? Pandas里面最基本的對(duì)象叫做Series。Series 和 np 有很多相類(lèi)點(diǎn),例如position 索引、切片、循環(huán)(for),以及一些基礎(chǔ)函數(shù)X.mean(),X.max(),X.argmax()。用法幾乎是一致的。要說(shuō)最大的不同點(diǎn),我認(rèn)為就是索引。Pandas的索引有兩種模式,一種是位置索引,例如a[0]、或者是a.iloc[0],iloc的意思是integer-location based indexing for selection by position ,還有一種是key索引(我自己這么叫的),例如a.loc['title'] ,loc的意思是 label-location based indexer for selection by label。這兩種不同的索引暴露了Series的本質(zhì),就是pandas對(duì)象本質(zhì)上是字典和列表的混合,這點(diǎn)很重要。
???? OK,這里做一個(gè)小結(jié):np對(duì)象最重要特點(diǎn)向量化運(yùn)算,pandas對(duì)象最重要特點(diǎn)是字典和列表混合。
???? But,我在學(xué)習(xí)過(guò)程中還是有很多numpy & pandas 衍生出來(lái)的問(wèn)題。嗯,今天就碰到了!
??? Q1:有些函數(shù)忘記到底是應(yīng)用在pd 還是 np 上?
??? A1:本來(lái)是想要去doc里面查查,一個(gè)個(gè)對(duì)比看看。現(xiàn)在想著索性還是先了解一下兩個(gè)庫(kù)里面常用的函數(shù)或者屬性。
dataframe 常用屬性
numpy 常用屬性
??? 可以這么理解,pandas常用的屬性基本都是數(shù)據(jù)操作類(lèi)的;而numpy基本上都是數(shù)據(jù)基礎(chǔ)運(yùn)算的,還有一個(gè)神級(jí)Lib Scipy 里面的常用函數(shù)是統(tǒng)計(jì)&優(yōu)化類(lèi)的。
scipy 常用函數(shù)
eg.分組統(tǒng)計(jì)、缺失值處理都是pd的管轄,生成隨機(jī)數(shù)等是numpy的管轄。
今天學(xué)了.dropna , .fillna 都是pd的屬性。
說(shuō)實(shí)話,目前并沒(méi)有體會(huì)出numpy有什么卓越的優(yōu)越性,這個(gè)等我慢慢體會(huì),這也需要是一篇文章!
來(lái)源:https://www.douban.com/note/635632989/
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

