您好,登錄后才能下訂單哦!
Python是一種面向對象、直譯式計算機程序設計語言,由于他簡單、易學、免費開源、可移植性、可擴展性等特點,Python又被稱之為膠水語言。下圖為主要程序語言近年來的流行趨勢,Python受歡迎程度扶搖直上。
由于Python擁有非常豐富的庫,使其在數據分析領域也有廣泛的應用。
一、為什么要用Python做數據分析?在我看來,大概有3大理由。
廣度: 各行各業都有自己的商業場景,每一個行業都需要使用數據來輔助決策。面對現在人人談大數據的情境,數據分析是一個你不得不會的技能。
精度 : Python是一門編程語言。也許從前的你完全依靠excel的默認設置生成圖表,從不思考為什么做一張數據圖,而使用編程工具的你必須從圖表長寬開始思考每一步成形的理由,從而更精地理解數據。
高效 : 傳統的數據工作涵蓋大量的重復不動腦操作,比如把日表合成周表,比如批量刪除某個字段,比如批量刪除空值。這些工作通過鼠標點擊軟件沒有辦法編成工作流,但卻可以通過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已經成為數據分析領域里事實上的標準語言。
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是你最好的選擇,一邊操作實例,一邊閱讀文檔,再輔助以相關的理論基礎,持之數日,則大業可成也。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。