1. 程式人生 > >如何用Python進行數據分析?

如何用Python進行數據分析?

orf 進入 代數 降維 image 異常 知識點 行數據 請求

技術分享圖片

本文為CDA數據分析研究院原創作品,轉載需授權

1.為什麽選擇Python進行數據分析?

Python是一門動態的、面向對象的腳本語言,同時也是一門簡約,通俗易懂的編程語言。Python入門簡單,代碼可讀性強,一段好的Python代碼,閱讀起來像是在讀一篇外語文章。Python這種特性稱為“偽代碼”,它可以使你只關心完成什麽樣的工作任務,而不是糾結於Python的語法。

另外,Python是開源的,它擁有非常多優秀的庫,可以用於數據分析及其他領域。更重要的是,Python與最受歡迎的開源大數據平臺Hadoop具有很好的兼容性。因此,學習Python對於有誌於向大數據分析崗位發展的數據分析師來說,是一件非常節省學習成本的事。

Python的眾多優點讓它成為最受歡迎的程序設計語言之一,國內外許多公司也已經在使用Python,例YouTube,Google,阿裏雲等等。

2.編程基礎

要學習如何用Python進行數據分析, CDA數據分析師建議第一步是要了解一些Python的編程基礎,知道Python的數據結構,什麽是向量、列表、數組、字典等等;了解Python的各種函數及模塊。下圖整理了這一階段要掌握的知識點:

技術分享圖片

3.數據分析流程

Python是數據分析利器,掌握了Python的編程基礎後,就可以逐漸進入數據分析的奇妙世界。CDA數據分析師認為一個完整的數據分析項目大致可分為以下五個流程:

技術分享圖片

1)數據獲取

一般有數據分析師崗位需求的公司都會有自己的數據庫,數據分析師可以通過SQL查詢語句來獲取數據庫中想要數據。Python已經具有連接sql server、mysql、orcale等主流數據庫的接口包,比如pymssql、pymysql、cx_Oracle等。

而獲取外部數據主要有兩種獲取方式,一種是獲取國內一些網站上公開的數據資料,例如國家統計局;一種是通過編寫爬蟲代碼自動爬取數據。如果希望使用Python爬蟲來獲取數據,我們可以使用以下Python工具:

Requests-主要用於爬取數據時發出請求操作。

BeautifulSoup-用於爬取數據時讀取XML和HTML類型的數據,解析為對象進而處理。

Scapy-一個處理交互式數據的包,可以解碼大部分網絡協議的數據包

2)數據存儲

對於數據量不大的項目,可以使用excel來進行存儲和處理,但對於數據量過萬的項目,使用數據庫來存儲與管理會更高效便捷。

3)數據預處理

數據預處理也稱數據清洗。大多數情況下,我們拿到手的數據是格式不一致,存在異常值、缺失值等問題的,而不同項目數據預處理步驟的方法也不一樣。CDA數據分析師認為數據分析有80%的工作都在處理數據。如果選擇Python作為數據清洗的工具的話,我們可以使用Numpy和Pandas這兩個工具庫:

Numpy - 用於Python中的科學計算。它非常適用於與線性代數,傅裏葉變換和隨機數相關的運算。它可以很好地處理多維數據,並兼容各種數據庫。

Pandas –Pandas是基於Numpy擴展而來的,可以提供一系列函數來處理數據結構和運算,如時間序列等。

4)建模與分析

這一階段首先要清楚數據的結構,結合項目需求來選取模型。

常見的數據挖掘模型有:

技術分享圖片

在這一階段,Python也具有很好的工具庫支持我們的建模工作:

scikit-learn-適用Python實現的機器學習算法庫。scikit-learn可以實現數據預處理、分類、回歸、降維、模型選擇等常用的機器學習算法。

Tensorflow-適用於深度學習且數據處理需求不高的項目。這類項目往往數據量較大,且最終需要的精度更高。

5)可視化分析

數據分析最後一步是撰寫數據分析報告,這也是數據可視化的一個過程。在數據可視化方面,Python目前主流的可視化工具有:

Matplotlib-主要用於二維繪圖,它能讓使用者很輕松地將數據圖形化,並且提供多樣化的輸出格式。

Seaborn-是基於matplotlib產生的一個模塊,專攻於統計可視化,可以和Pandas進行無縫鏈接。

按照這個流程,每個階段所涉及的知識點可以細分如下:

技術分享圖片

從上圖我們也可以得知,在整個數據分析流程,無論是數據提取、數據預處理、數據建模和分析,還是數據可視化,Python目前已經可以很好地支持我們的數據分析工作。

如何用Python進行數據分析?