您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關python數據分析入門是怎樣的,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
隨著Python自身功能的完善以及生態系統的擴展,Python在Web開發、網絡爬蟲、數據分析與數據挖掘、人工智能等應用方面逐漸嶄露頭角。回顧phthon演變史,主要如下介個階段:
1、Django和Flask引領的WEB開發模式
2、網絡爬蟲
3、自動化運維
4、數據分析與科學計算
作為數據庫出身,本人學習以數據分析和挖掘為方向為主,因此接下來圍繞這些內容進行簡要總結。2008年發布的Numpy、scipy和2009年發布的pandas是數據分析與科學計算的三劍客。因此在這次學習過程中,我圍繞數據分析方向經常用到的有Numpy、pandas、sklearn工具包為主進行學習測試。
一、安裝環境
自學要從python3開始,安裝環境建議使用Anaconda,關于anaconda的可以看看這篇文章:Anaconda完全入門指南 ,來自 https://www.jianshu.com/p/eaee1fadc1e9>
雖然有功能強大的PyCharm開發工具,在入門階段還是建議使用anaconda環境,尤其其中的Spyder圖形開發界面,適合初學者加載各種包和查看變量值等。
二、python語法基礎
python是采用弱變量機制,也就是說變量類型不用明確指定。python中的數據類型不多,有元組(tuple)、列表(list)、字典等。某種數據類型是指具體類型和該類型數據的操作集合,比如,元組用圓括號,可以做創建、查詢等,但不能修改。List用中括號表示,能修改,類似一維數組。不過list也可包含二元元組(或更多元元組)等,還有實現了分支和流程控制的for /while、lambd函數等。
數據分析和挖掘,僅僅python基本語法還不夠,因此后來有了Numpy和scipy包,主要用于處理以為數組(Ndarry)和各類數據計算。為什么數組的處理呢,因為學習機器學習的時候我們會發現矩陣是模式識別或相似度分析的基礎,矩陣實際上就是多維數組,所以免不了數組的計算。
三、python數據分析
現實世界不那么簡單,因此后來又有了pandas,主要用于表格類數據(實際上也是矩陣)處理的Datafram和序列數據的Series,通過pndas的各類操作方法,數據分析初期的數據清洗和預處理工作基本能完成。如果你是數據庫很熟,前期數據處理(數據倉庫)都能用SQL來處理,那pandas也是可以跳過去,但是學了pandas后我們會發現,有些數據處理操作比SQL還高效易用,因此還是需要學習。pandas的Datafram對應于數據庫中表或Exell上的表格。通過pandas我們后續會合并、排序特需的數據集。也能進行基本統計、分組、分布、交叉、相關分析等。
當然,這些分析離不開數據導入導出功能的實現,根據個人經驗,這些導入導出和各類數據庫鏈接等,python里實現起來還是比較順利輕松,Excell、CVS、文本、mysql等的鏈接導入導出測試一般一次就能成功。對Oracle數據庫的鏈接,因本地電腦需要安裝Oracle客戶端原因,相對較為麻煩,相關過程可以參見本博客的文章“python環境鏈接Oracle數據庫”:http://blog.itpub.net/18841027/viewspace-2655148/。
分析過的數據也需要各種圖標來展現,因此python也少不了數據可視化工具,因此出現了Matplotlib,其中應用最廣泛的稱為matplotlib.pyplot模塊兒。
四、python數據挖掘
除了簡單分析,我們還需要挖掘和采用機器學習的算法,因此有了機器學習公共庫scikit-learn(簡稱sklearn)。sklearn整合了多種機器學習算法庫,在數據分析過程中能夠快速建立模型。所謂機器學習本質就是首先將數據分成訓練集和測試集,根據訓練集及其目標特征,通過建立特定模型,然后通過測試數據進行測試評估。評估結果達到預計標準后將模型部署到生產環境,將輸入生產數據(特征未知的數據集)進行預測判斷的過程。如下圖1所示:
圖1 機器學習過程圖
數據挖掘是內容不少的一門專業課程,但在sklearn中的的實現概括起來如下圖2所示。從圖中可以看出,機器學習的本質也是一個分類的過程。數據分為字符類數據(非連續)和數值類數據(連續),字符類數據的分類我們還是叫分類(classification)而數值類數據的分類叫做回歸(regression)。另一中分類方法叫做聚類(clustering),還有為了降低計算和空間復雜的所采取的降維(dimensionality reduction)。
圖2 sklearn算法藍圖
五,應用和實戰
除非我們做科研類工作,我們工作基本聚焦在項目應用和工程實戰。因此,有了以上基礎后,我們得結合具體需求做一些代碼編寫或已有代碼的測試工作。當明白這些書上的現成代碼,且測試成功后,下一步就是對這些代碼做一些修改能力培養階段,同時回顧之前內容復習一遍,所謂的溫故而知新階段。溫故階段要熟練那些語法,當我們再次閱讀時候領悟到知識點肯定跟第一次學習階段有所不同的,也是必要階段。
這些階段結束后,我們開始結合工作需求做一些嘗試。也許一開始不好開始或下手。但我們要記住,只有問題解決為導向的學習研究才是真正高效的學習方式。因此,在這個挑戰階段雖然開頭難,但給我帶來成就感和學有所用的關鍵階段。我本人也準備開始踏入該階段,因此現在總結未免過早,當有了收獲,也會逐步分享。
Python語言易用和具備大量公用庫,可以拿來主義的方式來使用,但作為一個編程語言,要掌握這門語言來將現實世界需求改編為計算機世界的模型和程序代碼,我們離開不了計算(機)思維。那什么是計算思維?計算思維的本質就是抽象(Abstraction)與自動化(Automation),即在不同層面進行抽象,以及將這些抽象“機器化”。 國內國內學者和專家的觀點為:計算思維是人類應具備的第三種思維:
1、實驗思維: 實驗è觀察è發現、推斷與總結. ---觀察與歸納
2、理論思維: 假設/預設è定義/性質/定理è證明. ---推理和演繹
3、計算思維: 設計, 構造與計算. ---設計與構造
計算思維關注的是人類思維中有關可行性、可構造性和可評價性的部分。當前環境下,理論與實驗手段在面臨大規模數據的情況下,不可避免地要用計算手段來輔助進行。
就像計算機世界基礎由0和1、程序、遞歸構成一樣,在Python學習也離不開這些,尤其是遞歸和循環,針對不是計算機專業出身,這些基礎概念的學習補充對后續代碼理解有很大的幫助。
關于python數據分析入門是怎樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。