數(shù)據(jù)科學家都應會使用的7款Python工具
如果你是一個有追求的數(shù)據(jù)科學家,你應該充滿好奇心,常常探索、學習和提問。在線教程和視頻可以作為初期的準備學習,但能夠證明你已經(jīng)做好準備成為一個數(shù)據(jù)科學家的***方式是,你可以熟練的使用編程環(huán)境中各種所需的工具。
作 者詢問了他們的數(shù)據(jù)科學專家,讓他們列出了他們所認為的所有數(shù)據(jù)科學家都應該熟練使用的7個Python工具。Galvanize Data Science和GalvanizeU課程均著眼于學生是否花費大量時間沉浸于那些技術(shù),將時間投資在深入研究工具上,這會讓你在找***份工作時擁有絕對 的優(yōu)勢。下面就來看看這些工具:
IPython
IPython是多種編程語言的交互式計算的命令外殼,最初為Python編程語言開發(fā),提供了增強自省、富媒體、增加額外的shell語法、tab補全和豐富的歷史功能。IPython提供以下功能:
強大的shell交互功能(基于QT終端)
一個基于瀏覽器的筆記本,支持代碼、文本、數(shù)學共表達式、內(nèi)置圖表和其他富媒體
支持交互數(shù)據(jù)可視化和使用GUI工具包
靈活的、可嵌入的將解釋程序加載到自有工程里
易用,并行計算的高性能工具
GraphLab Create
GraphLab Create是一個Python庫,由C++引擎支持,用于快速構(gòu)建大規(guī)模、高性能的數(shù)據(jù)產(chǎn)品。
下面是GraphLab Create的一些特點:
能夠在您的計算機上交互高速的分析TB量級數(shù)據(jù)
可分析表格數(shù)據(jù)、圖形、文本和圖像的單一平臺
先進的技術(shù)機器算法學習,包括深度學習、進化樹、factorization machines理論
使用Hadoop Yarn或EC2集群在你的筆記本上運行相同的代碼
利用靈活的API接口使自己專注于任務(wù)或機器學習
使用數(shù)據(jù)預測服務(wù)輕松部署云數(shù)據(jù)產(chǎn)品。
為探索和生產(chǎn)監(jiān)測建立可視化數(shù)據(jù)
Pandas
Pandas有BSD開源許可,是讓Python編程語言更加易于使用的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析的開源軟件。在數(shù)據(jù)修改和預處理方面,Python早已十分強大,但是在數(shù)據(jù)分析和建模上,Python還不是十分完善。Pandas正好彌補了這一短板,它能夠使你的全部數(shù)據(jù)分析能夠在Python上實施,而不用借助于其他特定語言(例如R語言)。
結(jié) 合強大的Python工具包和其他庫,它在Python的數(shù)據(jù)分析環(huán)境中能夠有優(yōu)異的性能、生產(chǎn)力和兼容性。Pandas不能實現(xiàn)超出建模函數(shù)外線性回歸 和面板會歸;這可以通過看statsmodels和scikit學習。要把Python做成首位的統(tǒng)一建模環(huán)境還有很多工作要做,但我們已經(jīng)在奔向目標的 道路上了。
PuLP
線性編程是優(yōu)化的一個類型,一個目標函數(shù)應該***化的給與一定限制。PuLP是用Python寫的線性編程模型。PuLP可以生成線性文件,調(diào)用高度優(yōu)化的求解器GLPK、COIN CLP/CBC、CPLEX和GUROBI來解決線性問題。
Matplotlib
Matplotlib是一個Python 2D的繪圖庫,它可以生成高質(zhì)量圖表,用于跨平臺的硬件格式和交互式環(huán)境中。Matplotlib可以用于Python腳本,Python和IPython的shell界面(ALA Matlab或Mathematica),web應用服務(wù)器和6類圖形用戶界面工具包。
Matplotlib試圖讓簡單的事情更簡單,讓困難的事情增加可能性。僅用幾行代碼就可生成圖像、直方圖、能量光譜、柱狀圖、散點圖等等。
對于簡單的繪圖,Pyplot接口提供了一個MATLAB-like界面,特別是在結(jié)合IPython時。對于有能力的用戶,你可以完全控制線型、字體屬性、坐標屬性等等,并且通過一個面向?qū)ο蟮慕涌诨蛱峁┮唤M函數(shù)給MATLAB用戶。
Scikit-Learn
Scikit-Learn是一個簡單有效的數(shù)據(jù)挖掘和數(shù)據(jù)分析工具。他的優(yōu)點就在于,在任何情況下都是可以訪問的,并且在多種語境下可以重復使用。它基于NumPy、SciPy和mathplotlib構(gòu)建。Scikit-Learn采用開源BSD許可,在商業(yè)上可用。Scikit-Learn有以下特點:
分類:識別對象屬于哪一類別
回歸:預測一個對象相關(guān)聯(lián)的持續(xù)價值屬性
聚類:類似屬性對象的自動分組聚集
降維:減少需考慮的隨機變量的數(shù)目
模型選擇:比較、驗證和選擇參數(shù)模型
預處理:特征提取和規(guī)范化
Spark
Spark 由一個驅(qū)動程序組成,它可以運行用戶的main函數(shù),且能在集群上執(zhí)行各種并行操作。Spark最主要的優(yōu)點就是它提供彈性分布式數(shù)據(jù)集(RDD),這是 一個可并行操作的按聚類節(jié)點分區(qū)的元素集合。RDDs可在Hadoop文件系統(tǒng)中創(chuàng)建(或任何其他的Hadoop支持的文件系統(tǒng)),或現(xiàn)有的Scala集 合中已有的標量數(shù)據(jù)集合將其轉(zhuǎn)化。用戶可能也希望Spark能夠保存RDD,并且允許有效復用和并行操作。***,RDDs無法自動從節(jié)點中復原。
Spark 的另一個優(yōu)勢是可被用于并行操作的變量共享。默認情況下,當Spark并行的運行一個作為不同節(jié)點上的任務(wù)的函數(shù)時,它將每一個函數(shù)中的變量給每份任務(wù)都 拷貝一份。有時,一個變量需要在任務(wù)間共享,或是在任務(wù)和驅(qū)動程序間共享。Spark支持兩種類型的共享變量:廣泛散布的變量(可用在所有節(jié)點緩存上的數(shù) 據(jù))、累加器(只能執(zhí)行“相加”),像計數(shù)器和加法。
原文地址:Seven Python Tools All Data Scientists Should Know How to Use