學習 Python 數據分析的正確姿式

原文做者:Manu Jeevanhtml

原文地址:How to Learn Python for Data Science the Right Waypython

推薦閱讀:
Python大咖談 - Kenneth Reitz 與 Mike Driscoll
Python大咖談 - Brett Cannon程序員

若是你是經過學習給程序員設計的 Python 課程來學習 Python 數據分析,那就大錯特錯了。不少數據分析師在開始學習 Python 數據分析以前就被引導學習  LeetCode 上那些爲程序員準備的編程謎題。這對於只須要提取、清洗數據、繪製可視化圖、構建模型的數據分析師來講實在是誤人子弟,數據分析師要學的不是開發應用軟件,而是應該把時間和精力花在學習處理數據的模塊與支持庫上。請根據如下步驟一步步學習的Python 數據科學。面試

配置開發環境

Jupyter Notebook 是一個很是強大的開發環境,並且很是適合展現數據分析的結果。算法

Anaconda 是安裝 Jupyter Notebook 最簡單的方式,它是如今最流行的 Python 數據科學發行版,預裝了不少最流行的支持庫。sql

建議安裝 Anaconda 時,選擇支持 Python 3 最新版的版本。數據庫

安裝好 Anaconda 之後,閱讀這篇文章學習如何使用 Jupyter Notebook。編程

呆鳥雲:也能夠參考 DataCamp 的 Jupyter Notebook 速查表,點擊連接能夠下載呆鳥爲你們精心製做的高清中文版哦!

學些 Python 基礎就夠了

參考 DataCamp 的 Python 數據科學速查表,便可快速掌握 Python 的基礎知識,若是想學習更多 Python 的基礎知識,推薦看《Python基礎教程(第3版)》數組

Numpy 與 pandas 纔是數據分析師要學的東西

Python 處理大規模數據,執行數字處理算法其實很慢。聽到這裏你們可能會問,那你憑什麼說 Python 是最流行的數據分析編程語言?微信

這是由於 Python 有基於 C 與 Fortran 開發的支持庫,就是接下來要說的 Numpy 與 Pandas。

數據分析師要學的首先是 Numpy。這是 Python 數據科學計算裏最基本的支持庫。Numpy 支持高度優化的多維數組,這是絕大多數機器學習算法裏最基礎的數據結構。

接下來要學的是 Pandas,要知道數據分析師的時間絕大多數都是花在清理數據上。Pandas 是最流行的數據處理支持庫,它是 Numpy 的擴展,它的底層代碼是基於 Numpy 開發的。Pandas 最主要的數據結構叫 DataFrame。

Pandas 的做者 Wes McKinney 編著的《利用 Python 進行數據分析》一書是學習的Pandas 最好的資料,該書第 四、五、七、八、10 這幾章主要介紹 Numpy 與 Pandas,涵蓋了這兩個支持庫操控數據的大部分功能。

呆鳥雲:這裏推薦閱讀 Sean 的譯本 《利用Python進行數據分析·第2版》,
想要快速瞭解,也能夠參考 DataCamp 的 Numpy 與 Pandas 速查表,點擊連接能夠下載呆鳥爲你們精心製做的高清中文版哦!

學習用 Matplotlib 繪製可視化圖

Matplotlib 是繪製基礎可視化圖的 Python 支持庫。數據分析師至少要掌握如何使用Matplotlib 繪製最經常使用的可視圖,包括折線圖、條形圖、散點圖與箱型圖等。

Seaborn 這個可視化支持庫也很好用,它基於 Matplotlib 開發,並與 Pandas 高度集成。在初級階段,建議先掌握 Matplotlib 的基礎繪圖法,不用過多瞭解 Seaborn。

本文做者曾寫過下列四個教程介紹如何使用 Matplotlib 繪製可視圖。

第一部分:Matplotlib 基礎圖形
第二部分:如何設置圖形樣式與顏色、線型、標籤、色圖等
第三部分:註解、座標軸、圖形比率、座標系
第四部分:繪製複雜可視圖

學完這四個教程後,就算是掌握了 Matplotlib 的基本操做。

友情提示,現在不用花太多時間學習 Matplotlib,不少公司如今都採用 Tableau 或 Qlik 這樣的 BI 工具生成交互式可視化圖。

呆鳥雲:也能夠參考 DataCamp 的 Matplotlib 速查表,點擊連接能夠下載呆鳥爲你們精心製做的高清中文版哦!

左手 SQL,右手 Python

如今,公司的數據都存在數據庫裏,所以,數據分析師要學會用 SQL 從數據庫裏提取數據,而後再在 Jupyter Notebook 裏分析數據。

SQL 與 Pandas 是數據分析師的兩大利器。有些簡單的數據分析能夠直接用 SQL 處理,有些用 Pandas 則更高效。我我的喜歡用 SQL 提取數據,而後用 Pandas 分析數據。

如今不少公司都採用 Mode AnalyticsDatabricks  這樣的分析平臺,能夠輕鬆應用 Python 與 SQL 進行數據分析。

總之,數據分析師要了解如何高效使用 SQL 與 Python。推薦用 SQLite 學習 SQL 基礎知識,上手簡單,無需複雜配置。安裝 SQLite,找個示例 CSV 文件,而後學習如何使用 SQL 與 Python 分析數據。這裏有個帖子,能夠指導你如何使用 Python 與 SQL 進行數據分析。Programming with Databases in Python using SQLite

在瀏覽這篇帖子前,最好先了解一下 SQL 基礎知識,Mode Analytics 有一篇教程很是不錯:SQL 簡介。掌握 SQL 是每位數據分析師必備的基本技能,只有掌握了 SQL 才能高效地從數據庫裏提取數據。

呆鳥雲:這裏幫大偉作個廣告,他的 《跟着大偉學SQL:從基礎到進階,從刷題到面試》很是不錯,說實話比原文做者推薦的文章實用多了🤪。

學習應用 Python 實踐基礎統計學理論

大多數野心勃勃的數據分析師上來就學習機器學習,卻對統計學的基礎知識不屑一顧。

千萬別犯這種低級錯誤,統計學纔是數據分析的支柱。另外一方面,也不能只學習統計學的理論知識,卻忽略了統計學實戰操做。

所謂統計學實戰,這裏指的是,數據分析師應該懂得統計學能解決哪些問題,如何應用統計學處理各類難題。

如下是數據分析師必須精通的一些基本統計學概念:

採樣、頻率分佈、均值、中位數、衆數、變異性度量、機率基礎知識、顯著性測試,標準差,z-score,置信區間與假設檢驗(包括 A/B 測試)。

《面向數據科學家的實用統計學》這本書很是不錯,惋惜這本書裏的代碼示例都是用 R 語言寫的,Python 愛好者可能會有些許不爽,建議 Python 數據分析師讀這本書前四章就能夠了。讀了前四章就能夠了解上面所說的基礎統計學概念。這本書後面幾章主要是介紹機器學習,下一段會對這方面內容進行詳述。

還有很多人推薦《統計思惟:程序員數學之機率統計(第2版)》這本書,這本書確實是用 Python 學統計學,但該書做者用的不是 StatsModels 這樣的標準 Python 支持庫介紹統計學,而是用本身寫的函數,不具有通用性,所以,不太推薦本書。

學完統計學的基礎知識後,建議你們嘗試學着用 Python 實現這些基本概念。StatsModels 這個 Python 支持庫如今很是流行,其官網上的教程也不錯,值得一看。

此外,還推薦 Gaël Varoquaux1 的視頻教程,該教程介紹瞭如何使用 Python 與 StatsModels 實現推斷性與探索性統計分析。

用 Scikit-Learn 實現機器學習

Scikit-Learn 是 Python 生態圈裏最流行的機器學習庫。對於大部分數據分析師來講,第一步目標就是學習如何使用 Scikit-Learn 執行最多見的機器學習算法。

首先,學習 Coursera 上吳恩達的機器學習教程,只要看第 一、二、三、六、七、8 周的視頻就能夠了。這裏跳過了關於神經網絡的內容,由於做爲初學者來講,只須要關注最經常使用的機器學習技能就足夠了。

學會了這些內容之後,接下來繼續學習《機器學習實戰:基於Scikit-Learn和TensorFlow 》。初學者只要閱讀這本書的第一部分就能夠了,大概有 300 多頁。這是市面上介紹實戰機器學習最好的一本書。

呆鳥雲:這裏推薦 Sean 的譯本 《Scikit-Learn 與 TensorFlow 機器學習實用指南》

作完這本書裏列出的習題之後,就能夠學習如何用 Python 實踐吳恩達機器學習課程裏講述的理論知識了。

結論

最後一步是用上述各步列出的知識動手實戰一個數據科學項目。建議你們找一套本身感興趣的數據集,提出一些有意思的業務問題,而後經過分析解答這些問題。可是,記住千萬別再搞泰坦尼克鳶尾花這樣的機器學習項目了,都臭了大街了。這個帖子裏列出了 19 個查找數據科學項目免費數據集的網站,你們能夠看下。

還有一個你們可能喜歡的數據科學實戰項目,這就是預測股市價格。經過雅虎金融能夠實時抓取股票數據,把這些數據存到 SQL 數據庫裏,而後用機器學習預測股票價格。

若是你是從其餘行業或職能轉行作數據分析的,建議在工做中必定要充分利用本身已有的業務知識。

​也歡迎你們關注個人微信公衆號 Python大咖談


  1. 連接:https://pan.baidu.com/s/1VCrs... 提取碼:ky82
相關文章
相關標籤/搜索