如何進行Python資料分析?正確的“入門之路”三部曲!

博為峰網校發表於2018-11-26

Python是一種物件導向、直譯式計算機程式設計語言,由於他簡單、易學、免費開源、可移植性、可擴充套件性等特點,Python又被稱之為膠水語言。下圖為主要程式語言近年來的流行趨勢,Python受歡迎程度扶搖直上。

如何進行Python資料分析?正確的“入門之路”三部曲!

由於Python擁有非常豐富的庫,使其在資料分析領域也有廣泛的應用。

一、為什麼要用Python做資料分析?在我看來,大概有3大理由。

廣度: 各行各業都有自己的商業場景,每一個行業都需要使用資料來輔助決策。面對現在人人談大資料的情境,資料分析是一個你不得不會的技能。

精度 : Python是一門程式語言。也許從前的你完全依靠excel的預設設定生成圖表,從不思考為什麼做一張資料圖,而使用程式設計工具的你必須從圖表長寬開始思考每一步成形的理由,從而更精地理解資料。

高效 : 傳統的資料工作涵蓋大量的重複不動腦操作,比如把日表合成周表,比如批次刪除某個欄位,比如批次刪除空值。這些工作透過滑鼠點選軟體沒有辦法編成工作流,但卻可以透過python程式編寫自動化,省去大量時間。

如何進行Python資料分析?正確的“入門之路”三部曲!

基礎庫總結

這裡是對你會經常接觸的重要的庫的簡要總結:

NumPy: 擁有大量的科學計算的核心功能。由於它的內部運算是透過C語言實現的,所以比用Python寫成的同樣的函式,它的速度會快許多。但它並不是最使用者友好的包。

SciPy: 跟NumPy非常相似,但是有更多的方式來從分佈中取樣,計算檢驗統計量,等等。

MatPlotLib: 主要的畫圖框架。不太討喜,但卻是必備的包。

Pandas: 基本上是對NumPy/SciPy進行輕量的包裝,使它們更使用者友好一些。對於和表格資料互動非常理想,Pandas中把表格資料稱為資料框(DataFrame)。對畫圖功能也有一些包裝,使得無需使用MPL(Meta-Programming Library,超程式設計庫)就可以快速實現畫圖。我使用Pandas而非其他的工具來運算元據。

機器學習和計算機視覺

Crab:靈活、快速的推薦引擎

gensim:人性化的話題建模庫

hebel:GPU 加速的深度學習庫

NuPIC:智慧計算 Numenta 平臺

pattern:Python 網路挖掘模組

PyBrain:另一個 Python 機器學習庫

Pylearn2:一個基於 Theano 的機器學習庫

python-recsys:一個用來實現推薦系統的 Python 庫

scikit-learn:基於 SciPy 構建的機器學習 Python 模組

pydeep:Python 深度學習庫

vowpalporpoise:輕量級 Vowpal Wabbit 的 Python 封裝

skflow:一個 TensorFlow 的簡化介面(模仿 scikit-learn)

Caffe: 一個 Caffe 的python介面

OpenCV:開源計算機視覺庫

pyocr:Tesseract 和 Cuneiform 的包裝庫

pytesseract:Google Tesseract OCR 的另一包裝庫

SimpleCV:一個用來建立計算機視覺應用的開源框架

上面列舉的只是其中一部分,還有很多很多。當然,他們很多並非是用Python來實現,但都共同的提供了Python介面,甚至好幾個都把Python當成了頭等公民(First-Class)。

在此並非想說Python這門語言很強大或者複雜,而恰恰相反,得益於Python的簡潔和包容。才讓它在資料探勘領域有如此的地位。

二、Python資料分析流程

1、資料獲取:公開資料、Python爬蟲

外部資料的獲取方式主要有以下兩種。

第一種是獲取外部的公開資料集,一些科研機構、企業、政府會開放一些資料,你需要到特定的網站去下載這些資料。這些資料集通常比較完善、質量相對較高。

另一種獲取外部資料的方式就是爬蟲。

比如你可以透過爬蟲獲取招聘網站某一職位的招聘資訊,爬取租房網站上某城市的租房資訊,爬取豆瓣評分評分最高的電影列表,獲取知乎點贊排行、網易雲音樂評論排行列表。基於網際網路爬取的資料,你可以對某個行業、某種人群進行分析。

常用的的電商網站、問答網站、二手交易網站、婚戀網站、招聘網站等,都可以爬到非常有價值的資料。

Python具有靈活易用,方便讀寫的特點,其可以非常方便地呼叫資料庫和本地的資料,同時,Python也是當下網路爬蟲的首選工具。

Scrapy

Python開發的一個快速、高層次的螢幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化的資料。Scrapy用途廣泛,可以用於資料探勘、監測和自動化測試。

2、資料整理

NumPy (Numeric Python)

提供了許多高階的數值程式設計工具,如:矩陣資料型別、向量處理,以及精密的運算庫。專為進行嚴格的數字處理而產生。多為很多大型金融公司使用,以及核心的科學計算組織如:Lawrence Livermore,NASA用其處理一些本來使用C++,Fortran或Matlab等所做的任務。

Pandas (Python Data Analysis Library)

Pandas 是基於NumPy 的一種工具,該工具是為了解決資料分析任務而建立的。Pandas 納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。pandas提供了大量能使我們快速便捷地處理資料的函式和方法。你很快就會發現,它是使Python成為強大而高效的資料分析環境的重要因素之一。

3、建模分析

每種計算機程式語言,似乎都有自己成名或適用的領域。

在這個大家都在談雲端計算、大資料、深度學習的時代,讓我們來看看,這些領域裡面的代表吧。

如何進行Python資料分析?正確的“入門之路”三部曲!

說句不負責任的話,Python已經成為資料分析領域裡事實上的標準語言。

Scikit-learn

從事資料分析建模必學的包,提供及彙總了當前資料分析領域常見的演算法及解決問題,如分類問題、迴歸問題、聚類問題、降維、模型選擇、特徵工程。

4、資料視覺化

matplotlib:一個 Python 2D 繪相簿

bokeh:用 Python 進行互動式 web 繪圖

ggplot:ggplot2 給 R 提供的 API 的 Python 版本

plotly:協同 Python 和 matplotlib 工作的 web 繪相簿

pyecharts:基於百度 Echarts 的資料視覺化庫

pygal:一個 Python SVG 圖表建立工具

pygraphviz:Graphviz 的 Python 介面

PyQtGraph:互動式實時 2D/3D/ 影像繪製及科學/工程學元件

SnakeViz:一個基於瀏覽器的 Python's cProfile 模組輸出結果檢視工具

vincent:把 Python 轉換為 Vega 語法的轉換工具

VisPy:基於 OpenGL 的高效能科學視覺化工具

如果在Python中看視覺化,你可能會想到Matplotlib。除此之外,Seaborn是一個類似的包,這是用於統計視覺化的包。你可以做很複雜的圖和一些程式碼。還有Bokeh,它有很多互動功能,可以做很多不同型別的圖。類似Bokeh的還有Plotly。它在瀏覽器中呈現圖,能夠進行互動的視覺化。雖然Python的繪圖功能沒有R那麼強大,但是我看好它的發展前景。

三、總結

開始的時候,你可能考慮的問題不是很周全,總會遇到各種各樣的問題,舉例如下:

1.環境配置,工具安裝、環境變數,對小白太不友好;

2.缺少合理的學習路徑,上來 Python、HTML 各種學,極其容易放棄;

3.Python有很多包、框架可以選擇,不知道哪個更友好;

4.遇到問題找不到解決辦法,學習停滯不前;

5.網上的資料非常零散,而且對小白不友好,很多看起來雲裡霧裡;

6.懂得技巧,但面對具體問題無法系統思考和分析;

但隨著你經驗的積累,慢慢就會找到分析的方向,有哪些一般分析的維度,比如Top榜單、平均水平、區域分佈、同比環比、相關性分析、未來趨勢預測等等。隨著經驗的增加,你會有一些自己對於資料的感覺,這就是我們通常說的資料思維了。

真若有心於資料領域,甚或欲從事資料科學之職業。請對Python有信心,值得你付出時間。想走機器學習之路,Scikit-learn是你最好的選擇,一邊操作例項,一邊閱讀文件,再輔助以相關的理論基礎,持之數日,則大業可成也。


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

相關文章