擅用Python,強推這 7 種 神兵利器!

程式設計師啟航發表於2019-07-10

君子生非異也,善假於物也。

“物”能夠延展英雄的能力。它是呂布的赤兔馬,楊過的玄鐵重劍,CS中的沙漠之。鷹,曹操傳中的鳳凰羽衣。“物”也可用以治癒英雄,例如張無忌的黑玉斷續膏,李逍遙的天香續命露,還有深夜裡TVB的一碗麵。

擅用Python,強推這 7 種 神兵利器!

對於不同的位面,有著不同的寶物定義。對古時文人來講,筆墨紙硯,是當時具有生產力輸出的四大工具。對程式設計師來講,當代的“文房四寶”不外乎是:筆 記本,大螢幕,機械鍵盤,人體工學椅,Google,Github這幾種。特別是機械鍵盤和人體工學椅,它們是極為重要的“人機介面”。前者可以用來延展 英雄的輸出能力,後者可以用來治癒英雄的腰椎。

擅用Python,強推這 7 種 神兵利器!

在資料領域也有類似的情況。一個資料專案,最重要的是定義問題,其次是拿到好的資料,再次是找到合適的方法,最不重要的可能就是選擇一個工具了。但是看起來最形而下的工具,卻是最具體而真實的“人數介面”。用一種順手的工具來玩資料,我們會覺得比較舒服,輸出效率更高。

市面上的分析工具大致分為兩大類,選單式的工具和命令列式的工具。前者適合於初學入門,類似於跟團旅遊,提供了固定的路線。分析套路比較固定化,點 幾下滑鼠就可以搞定也很省事。後者適合於老手玩家,類似於自由行,需要自己規劃資料工作流,適用於自定義的靈活分析。大多數使用者害怕命令列,然而使用命令 行才能掌握真正的力量。命令列是Jedi的原力。

在命令列工具類別中,最耀眼的是R和Python這對雙星。他們有非常多的相似之處,第一個相似之處是“快”。這種快不是純計算速度快,而是從想法 到結果的快。因為不論是探索資料還是建模,都需要各種嘗試各種試錯各種踩坑,如果要花2小時寫程式碼,跑1分鐘,不如花1分鐘寫程式,跑1小時。因為人的時 間總是更為寶貴。第二個相似之處是擴充套件豐富。即有大量現成的函式模組。從想法到結果的快速實現,不能等待重新造輪子,另一方面,試錯也要做很多複雜的自定 義任務,將各種模組進行組合,呼叫各種外部互動介面,這兩種開源工具都非常擅長。

二者的差異點在於Python是一種通用型程式設計工具,R專注於資料領域;R有更為豐富的專業統計函式,Python則長於機器學習;R有更好的可視 化包,Python正在快速追趕;Python和R的核心語法非常簡潔,一些R包的語法則兼收幷蓄,錯綜複雜。當你有時間的時候,雙修是最好的選擇。因為 這兩種工具類似於筷子和勺子的區別,在不同場景下使用某種工具更為有效。

R語言這個工具與其生態系統,在統計之都上已經介紹得非常多了。下文簡單介紹一下python的七個最為重要的資料分析模組,或者稱之為七種武器。

長生劍:Numpy

擅用Python,強推這 7 種 神兵利器!

Numpy是Python提供數值計算的基礎模組,也是Python生態中歷史最為悠久的模組,可稱得上“長生”二字。如果沒有這柄長生劍,就沒有 辦法做快速高效的向量化計算。它還提供了線性代數等高階矩陣運算功能,另外還能整合C的程式碼,讓你出劍更加的快。Python的許多擴充套件模組都是基於 Numpy開發的,所以學好Numpy就算是奠定好了根基。

碧玉刀:SciPy

擅用Python,強推這 7 種 神兵利器!

SciPy是基於Numpy開發的高階模組,它用於解決科學計算中的一些標準問題。例如數值積分和微分方程求解,擴充套件的矩陣計算,最優化,概率分佈和統計函式,甚至包括訊號處理。練習好碧玉刀和長生劍,就足以解決常見的計算問題,並不需要自己哼哧哼哧造輪子寫函式了。

孔雀翎:Matplotlib

擅用Python,強推這 7 種 神兵利器!

孔雀的尾羽聚合了世間所有的色彩,做資料研究同樣需要漂亮的視覺化工具。Matplotlib是python下最著名的繪相簿,提供了一整套和 Matlab相似的API,十分適合互動式繪圖。也可將它作為繪圖控制元件,嵌入各種應用程式中。在其基礎之上,還有更為有趣的繪圖工具Seaborn和 Bokeh。

多情環:Pandas

擅用Python,強推這 7 種 神兵利器!

在資料整理階段,我們經常需要連線讀定不同型別的資料來源,處理不同格式的資料物件,如果只使用Numpy會很麻煩。Pandas使Python具備 了類似R的資料框物件。這樣方便用於真實江湖的資料處理和分析,它提供大量易用、高效的資料操作函式庫,能執行join以及其他SQL類似的功能來重塑數 據,支援各種格式的輸入輸出資料。它與Python生態中的其它模組也有很好的整合,多情環名不虛傳。

離別鉤:Statsmodels

擅用Python,強推這 7 種 神兵利器!

Statsmodels是python中專門用於統計分析的模組,提供各種迴歸模型函式,包括廣義迴歸和穩健迴歸,還提供大量時間序列分析函式,例如ARIMA/VAR,各種經典假設檢驗和非引數方法一個都不少。有了離別鉤,你可以隨時和R說離別。

霸王槍:Scikit-learn

擅用Python,強推這 7 種 神兵利器!

Scikit-learn是非常著名的機器學習庫,它提供一個統一的介面來使用不同模型,有助於迅速地在資料集上應用流行的演算法。它包含了許多用於 標準機器學習任務的工具,例如聚類、分類和迴歸等。不僅是各種演算法,機器學習中重要的特徵選擇和模型評估均在模組中包含了。值得一提的另一個模組 gensim:提供了詞向量、主題模型等函式。有了這兩種模組,天下就絕沒有不能解決的事。

一口箱子:TensorFlow

擅用Python,強推這 7 種 神兵利器!

古龍並未寫完最後的第七種武器,通常會將《英雄無淚》中的一口箱子作為最為神祕最為強悍的終級武器。在Python生態中,一口箱子只能屬於 TensorFlow。它作為名門大派出品的深度學習框架,一出世就備受矚目。TensorFlow提供了C++和python兩種介面,讓你能高效的設 計各種機器學習演算法,並且能執行在各類硬體架構之上。此外還有各種強力元件搭配,TensorBoard用於監控學習過程中的各項參 數,TensorServer可用於生產環境的模型部署,甚至傳說還有TPU這種專門用於深度學習的晶片。

在資料江湖中,沒有順手的武器,英雄亦束手加班中。七種武器雖強,但器物總是死的,更重要的是從器物的把玩中,能領悟到運用之妙,資料之道。一件武 器是否能令讀者覺得神奇有價值,主要還是得看使用它的是什麼人。有赤兔的呂布沒有看到明天,沒有玄鐵重劍的楊過卻有更進一步的修煉。

江湖路遠,少俠們一路走好。

大家在學python的時候肯定會遇到很多難題,以及對於新技術的追求,這裡推薦一下我們的Python學習扣qun:784758214,這裡是python學習者聚集地!!同時,自己是一名高階python開發工程師,從基礎的python指令碼到web開發、爬蟲、django、資料探勘等,零基礎到專案實戰的資料都有整理。送給每一位python的小夥伴!每日分享一些學習的方法。和需要注意的小細節

點選: python技術分享交流


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913713/viewspace-2650173/,如需轉載,請註明出處,否則將追究法律責任。

相關文章