人類產生的數據量已經達到前所未有的水平,每天創造了近2.5萬億字節的數據。隨著物聯網和移動技術的進步,數據已成為大多數組織的核心利益。但是,比起簡單地收集,更重要的是正確分析和解釋數據以挖掘其中的價值。
大多數企業從各種來源收集數據,每個數據流提供的信號理想地匯集在一起形成有用的見解。但是,能否充分利用數據取決於是否有合適的工具來清理、準備、合併並正確分析。
以下介紹七個數據分析師必備的Python工具:
Pandas
pandas是一個開源的,BSD許可的庫,為Python程式語言提供高性能,易於使用的數據結構和數據分析工具。Python長期以來一直非常適合數據整理和準備,但對於數據分析和建模則不那麼重要。pandas有助於填補這一空白,使您能夠在Python中執行整個數據分析工作流程,而無需切換到更像域特定的語言,如R.
結合優秀的IPython工具包和其他庫,在Python中進行數據分析的環境在性能,生產力和協作能力方面表現出色。
PuLP
線性規劃是一種優化,其中在給定一些約束的情況下應該最大化目標函數。PuLP是一個用python編寫的線性編程建模器。PuLP可以生成LP文件並使用高度優化的解算器,GLPK,COIN CLP / CBC,CPLEX和GUROBI來解決這些線性問題。
Matplotlib
matplotlib是一個python 2D繪圖庫,可以生成各種硬拷貝格式和跨平臺交互式環境的出版物質量數據。matplotlib可用於python腳本,python和ipython shell,Web應用程式伺服器和六個圖形用戶界面工具包。
matplotlib試圖讓簡單的事情變得容易和艱難。您只需幾行代碼即可生成繪圖,直方圖,功率譜,條形圖,錯誤圖,散點圖等。
對於簡單的繪圖,pyplot接口提供類似MATLAB的接口,特別是與IPython結合使用時。對於高級用戶,您可以通過面向對象的界面或通過MATLAB用戶熟悉的一組函數完全控制線型,字體屬性,軸屬性等。
cikit-Learn
Scikit-Learn是一種簡單有效的數據挖掘和數據分析工具。它的優點在於它可供所有人使用,並可在各種環境中重複使用。它建立在NumPy,SciPy和mathplotlib之上。Scikit也是一個商業上可用的開源軟體 - BSD許可證。Scikit-Learn具有以下功能:
分類 - 確定對象屬於哪個類別回歸 - 預測與對象關聯的連續值屬性群集 - 將類似對象自動分組到集合中降維 - 減少要考慮的隨機變量的數量模型選擇 - 比較,驗證和選擇參數和模型預處理 - 特徵提取和規範化
Spark
Spark由一個驅動程序組成,該程序運行用戶的主要功能並在集群上執行各種並行操作。Spark提供的主要抽象是彈性分布式數據集(RDD),它是跨群集節點分區的元素集合,可以並行操作。RDD是通過從Hadoop文件系統(或任何其他Hadoop支持的文件系統)中的文件或驅動程序中的現有Scala集合開始並對其進行轉換來創建的。用戶還可以要求Spark 在內存中保留 RDD,允許它在並行操作中有效地重用。最後,RDD會自動從節點故障中恢復。
Spark中的第二個抽象是可以在並行操作中使用的共享變量。默認情況下,當Spark並行運行一個函數作為不同節點上的一組任務時,它會將函數中使用的每個變量的副本發送給每個任務。有時,變量需要跨任務共享,或者在任務和驅動程序之間共享。Spark支持兩種類型的共享變量:廣播變量,可用於緩存所有節點的內存中的值; 累加器,它們是僅「添加」到的變量,例如計數器和總和。
IPython
IPython是一種用於多種程式語言的交互式計算的命令shell,最初是為Python程式語言開發的,它提供增強的內省,富媒體,附加shell語法,選項卡完成和豐富的歷史記錄。IPython提供以下功能:
強大的交互式shell(終端和基於Qt的)基於瀏覽器的筆記本,支持代碼,文本,數學表達式,內聯圖和其他富媒體支持交互式數據可視化和GUI工具包的使用靈活,可嵌入的解釋器,可以加載到自己的項目中易於使用,高性能的並行計算工具
GraphLab Create
GraphLab Create是一個由C ++引擎支持的Python庫,用於快速構建大規模,高性能的數據產品。
以下是GraphLab Create的一些功能:
能夠在桌面上以交互速度分析TB級數據表格數據,圖形,文本和圖像的單一平臺最先進的機器學習算法,包括深度學習,提升樹和分解機器使用Hadoop Yarn或EC2群集在筆記本電腦或分布式系統中運行相同的代碼使用靈活的API專注於任務或機器學習使用Predictive Services在雲中輕鬆部署數據產品可視化數據以進行勘探和生產監控