????? 之前的文章里面談到過,我從R轉到Python上,一個很大的不習慣就是R的數據結構比較簡單,但是Python的數據類型比較多,很容易就令人頭腦混亂。但是今天學習了一下Udacity的課程,頓時就清楚多了。
???? Python最基礎的數據類型包括數組、列表、字典比較常見的。而Numpy和Pandas的數據類型是在基礎數據類型上建立,彼此相關,又彼此不同。
???? Numpy里面最基本的就是一維的對象np代指,這點我認為和列表list基本沒有什么不同,很多操作(比如各種的for循環)在list上實現,同時也完全可以在numpy對象實現。但是numpy之所以是numpy,最重要的一點就是numpy向量化操作的特點,這點和R語言里面還是比較類似,當然Matlab幾乎也是向量化操作。比較基礎的就是加減乘除的運算,當然還有一點比較容易被忽略的就是np對象和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里面到底有多少個對元素在相同位置上正負號一致?
??? 這里我要挖個坑,未來可能會做更多的練習,會把我遇上的情況分享一下。
??? Pandas里面最基本的對象叫做Series。Series 和 np 有很多相類點,例如position 索引、切片、循環(for),以及一些基礎函數X.mean(),X.max(),X.argmax()。用法幾乎是一致的。要說最大的不同點,我認為就是索引。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的本質,就是pandas對象本質上是字典和列表的混合,這點很重要。
???? OK,這里做一個小結:np對象最重要特點向量化運算,pandas對象最重要特點是字典和列表混合。
???? But,我在學習過程中還是有很多numpy & pandas 衍生出來的問題。嗯,今天就碰到了!
??? Q1:有些函數忘記到底是應用在pd 還是 np 上?
??? A1:本來是想要去doc里面查查,一個個對比看看。現在想著索性還是先了解一下兩個庫里面常用的函數或者屬性。
dataframe 常用屬性
numpy 常用屬性
??? 可以這么理解,pandas常用的屬性基本都是數據操作類的;而numpy基本上都是數據基礎運算的,還有一個神級Lib Scipy 里面的常用函數是統計&優化類的。
scipy 常用函數
eg.分組統計、缺失值處理都是pd的管轄,生成隨機數等是numpy的管轄。
今天學了.dropna , .fillna 都是pd的屬性。
說實話,目前并沒有體會出numpy有什么卓越的優越性,這個等我慢慢體會,這也需要是一篇文章!
來源:https://www.douban.com/note/635632989/
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
