Python作為一門優秀的編程語言,近年來受到很多編程愛好者的青睞。
一是因為Python本身具有簡捷優美、易學易用的特點;二是由於互聯網的飛速發展,我們正迎來大數據的時代,而Python無論是在數據的採集與處理方面,還是在數據分析與可視化方面都有獨特的優勢。我們可以利用Python便捷地開展與數據相關的項目,以很低的學習成本快速完成項目的研究。
Python被大量應用在數據挖掘和機器學習領域,其中使用極其廣泛的是IPython、Numpy、pandas、Matplotlib等庫。對於希望使用Python來完成數據分析工作的人來說,學習IPython、Numpy、pandas、Matplotlib這個組合是目前看來不錯的方向。
IPython
IPython是Python的加強型交互式解釋器。
IPython是使用Python進行數據分析、處理、呈現的重要選擇之一。它是一個與Python科學計算包(主要包括Numpy、pandas、Matplotlib等)緊密聯繫的交互式開發環境,它同時也是Python科學計算包的一部分。
主要特點包括:
提供給用戶一個強大的交互界面。
Jupter Notebook的內核。
高效的交互式處理、呈現數據(特別是與Matplotlib一起使用)。
適合並行處理計算。
IPython加上一個文本編輯器是科學計算者使用Python進行數據分析、處理、呈現的最佳選擇之一。
IPython主要包括:
一個強大的、交互式的Python殼
Jupyter內核,支持用戶在Jupyter Notebook以及其他終端與IPython的交互
IPyton殼
2017年最新發布的IPython殼以及內核具有以下這些重要的特性:
全面的對象檢查。
記錄輸入歷史。
緩存輸出結果。
擴展的代碼補全功能,可以補全變量、關鍵字、文件名、函數名等。
對系統“魔法”方法的擴展,可以處理與操作系統相關的任務。
豐富的配置系統支持不同狀態的切換。
歷史信息登錄與重載。
支持不同語法。
輕鬆嵌入到其他Python程序中。
對pdb調試器和Python測試工具的集成。
Numpy
Numpy是Python科學計算庫的基礎。
主要包括:
強大的N維數組對象和向量運算
一些複雜的功能
與C/C++和Fortran代碼的集成
實用的線形代數運算、傅立葉變換、隨機數生產等
Numpy提供了一個簡潔的C語言接口,可以非常方便地使用C語言編寫的代碼操作Numpy數組對象,反過來使用C語言生成的數組也可以輕鬆的轉化成Numpy數組對象;這一特性使得Python輕鬆地與其他編程語言C/C++粘結在一起。Numpy除了用作科學計算,也可以用作多維度普通數據的容器;並且可以定義任何類型的數據,使得Numpy高效、無縫地與各種類型的數據分析庫連接起來。
Numpy的主要對象是一個多維度的、均勻的多維數組。Numpy提供了各種函數方法可以非常方便靈活的操作數組,熟練掌握數組的基本概念是使用數組這種數據結構的基本要求。
pandas
pandas是建立在Numpy基礎上的高效數據分析處理庫,是Python的重要數據分析庫。
pandas提供了眾多的高級函數,極大地簡化了數據處理的流程,尤其是被廣泛地應用於金融領域的數據分析。
pandas主要包括:
帶有標籤的數據結構,主要包括序列(Series)和數據框(DataFrame)等。
允許簡單索引和多級索引。
整合了對數據集的集合和轉換功能。
生成特定類型的數據。
支持從Excel、CSV等文本格式中文導入數據,以Pytables/HDF5格式高效地讀/寫數據。
能夠高效地處理帶有默認值的數據集。
能夠直接進行常規的統計迴歸分析。
Matplotlib
Matplotlib是一個主要用於繪製二維圖形的Python庫。
數據可視化是數據分析的重要環節,藉助圖形能夠幫助更加直觀地表達出數據背後的”東西”。
Matplolib最初主要模仿Matlab的畫圖命令,但是它是獨立於Matlab的,可以自由、免費使用的繪圖包。Matplotlib依賴於之前介紹的Numpy庫來提供出色的繪圖能力。Matplotlib項目是John Hunter在2002年發起的,目標是建立一個具備以下特點的Python繪圖工具包:
能夠繪製出高質量的圖形,並且圖形裡面的鑲嵌的文本必需足夠美觀。
能夠和Tex文檔一起輸出。
能夠嵌入到GUI(圖形用戶界面)應用程序中。
代碼足夠簡潔並且可擴展性強。
繪圖命令足夠方便。
經過社區多年以來的努力,Matplotlib已經具備了上面列出的所有特點。現在Matplotlib被廣泛地應用於各種生產、科學研究等環境中,比如在網絡服務中動態生成圖形、在IPython殼下交互使用Matplotlib繪圖等。
Matplotlib從概念上可以分為三層:
matplotlib.pylab,這一層給主要給用戶提供一些簡單的命令來生成圖形,語法風格和Matlab非常接近。Matplotlib的API,這一層主要給用戶提供了直接創建圖形、線條、文本等的功能。這是一個抽象層,它並不關心圖形的輸出。最後一層是後端,主要是管理圖形的輸出等其他一些功能。
這裡只是簡單羅列一下,有興趣的可以開搞啦。
對嘍,有本書(Python數據分析從入門到精通)可以著手學習一把,不錯哦(免工費廣告)——
本書詳細地介紹了IPython、Numpy、pandas、Matplotlib庫的組成與使用,為科學計算相關人員提供了有用的參考資料。採取循序漸進的寫作風格,對於工具的安裝、使用步驟、方法技巧逐步展開,加以圖解和應用場景,即使完全不懂Python和數據分析的人員,也可以流暢地讀完本書。
無論哪種語言,編程的方法、模式、數據結構、算法都是相通的。本書將科學計算、數據結構與各種工具和方法完美結合,讓非Python讀者也能融會貫通,讓學習統計的人能找到更適合的統計方法和數據分析處理方法。
本書最後的兩個實戰案例適合數據分析入門者,案例的步驟詳細、分析到位,能為讀者入手真實項目打下良好的基礎。
閱讀更多 3T教育編程猿 的文章