如何系統地學習Python 中 matplotlib, numpy, scipy, pandas?

連結:https://www。zhihu。com/question/37180159/answer/761102349

編輯:深度學習與計算機視覺

宣告:僅做學術分享,侵刪

最近在學習python繪製圖形的相關知識,學習到了這幾個庫,所以想請教一下各位知友。希望用python來做資料探勘相關的任務。

想問問各位知友,python做資料探勘是否足夠強大?學習資料探勘需要學習哪些知識呢?我是一個本科生,本科學習的話能從事資料探勘相關工作嗎?

作者:Evan

https://www。zhihu。com/question/37180159/answer/303839224

對於這個問題,我覺得我還是自己來宣傳一波乾貨哈哈。

對於題主的問題,說說我的觀點:

1。首先python做資料探勘是絕對足夠強大的,雖然,現在統計,資料分析類的很多論文還是R語言用的比較多,但是,Python本身也擁有強大的資料計算庫的視覺化工具庫,這個題主已經列出。把這幾個庫基本學會了,那對於資料探勘程式設計任務還是有基本的保障的!而且在機器學習,人工智慧領域,主流是Python,資料探勘和機器學習,人工智慧很近,很多理論相通,之後若想轉機器學習,人工智慧學會這些庫還是有很大優勢的。

2。然後資料探勘需要學習哪些知識,一個是數學:線代,機率論,凸最佳化等,這個很大程度上決定了天花板。一個是演算法,資料探勘演算法有很多,什麼決策樹,邏輯迴歸,BP網路等等,這些事理論知識,當學習他們是很有必要的,因為你

對一個模型演算法瞭解的越多,你就會發現它的侷限性越大。

對於調參調包時有很大幫助。還有就是程式設計,上面都是紙上,正真強體現在成果上,那這些庫的理解就至關重要了!其他比如英語,計算機基礎,很有必要,但我們可以先把上面的學好。

3。本科,學歷我從來都不覺得是一個問題,再說,很多研究生。。。。(省略吐槽)。只要有興趣,現在開始,未來在等你(雞湯味有點重,見諒)

最後,推薦我的專欄的一個系列總結:

numpy:快速儲存和處理大型矩陣,主要是記住numpy特點

Numpy複習總結(一)https://zhuanlan。zhihu。com/p/32955108

Numpy複習總結(二)https://zhuanlan。zhihu。com/p/33045644

pandas:主要是思想和基本操作,各種函式不要背,浪費時間的。

pandas複習總結(一)https://zhuanlan。zhihu。com/p/33122239

pandas複習總結(二)https://zhuanlan。zhihu。com/p/33229372

matplotlib:還是主要記住思想和基本操作,各種函式不用背,多實踐。

資料視覺化工具matplotlib複習總結https://zhuanlan。zhihu。com/p/33299777

作者:知乎使用者

https://www。zhihu。com/question/37180159/answer/80919616

首先,下載一個 anaconda,這是一個 Python 發行版,你需要用到的關於科學計算、資料處理的東西基本上都有了。

然後,去圖書館借一本《用 Python 做科學計算》忽略掉環境配置的部分,把裡邊關於 numpy 和 matplotlib 的內容看了。其他的部分根據自己需要選擇閱讀。一般來說每一個科學計算的庫會自成一套體系,但是絕大多數都會基於 numpy,所以 numpy 必須學會。但是你也不用每個模組都用過,知道常用的函式和 numpy 的設計模式就好。matplotlib 是絕大多數繪相簿的基礎庫,所以也繞不過去。

再然後,開啟你需要的庫的官網比如 pandas,一般都會有 getting started,先看完上個手。然後直接看 User Guide 或者 Tutorial。

之後根據自己的需求定向學習就好。每個第三方庫都有自己內在的設計邏輯,比如 sklearn 就是圍繞著 fit 和 predict 兩個函式來做的,預設行向量是樣本啦 pipline 啊之類的。pandas 核心就是 DataFrame 即就是帶有 index 的 numpy 陣列等等。學習一個庫,重要的就是要學習這個庫的內在的設計邏輯,這些一般都在 document 或者 User Guide 裡邊提了。並不需要每個功能/函式都記住,大致知道他有某方面的功能就好了,當你有某個功能的需求的時候猜一下然後直接 Google 就好。

比如我想求一個線性方程組的解,知道了內在邏輯閉上眼睛猜一下也知道這個函式不在 scipy 中就在 numpy 中,於是 Google 一下:solve linear equation numpy,第一條就是:

如何系統地學習Python 中 matplotlib, numpy, scipy, pandas?

再比如,我想要合併兩個 pandas 的表。閉上眼睛也知道 pandas 肯定有這個功能,資料庫裡邊學過類似的操作叫做 Join,所以就 Google 一下:

如何系統地學習Python 中 matplotlib, numpy, scipy, pandas?

看第二條結果,直接就是三個解決方案,讀一讀對比一下就好。

常用的函式查兩遍之後你也就背下了,這樣過一段時間的使用後基本上你就熟練了。對某個庫有興趣想要深入的話可以直接去看他的原始碼。就醬紫,這就是所謂的系統方法~

作者:保一雄

https://www。zhihu。com/question/37180159/answer/230932556

題主的問題主要是兩個方向,一是如何系統學習Python中跟資料分析&資料探勘相關的庫,二是對本科生從事資料探勘行業的疑問。

先來講講如何系統地學習Python中有關資料分析&挖掘相關的庫

什麼是系統地學習?可能有人會覺得這是個偽命題,個人覺得,系統地學習就是一個

先搭知識框架體系

然後不斷填充知識,不斷更新迭代

的過程。類似於蓋樓房,先做地基,再往上一層一層走。

既然要系統地學習Python中有關資料分析&挖掘相關的庫,那麼

pandas

numpy

scipy

matplotlib

, 以及

scikit-learn

就是知識框架體系中的必備部分: pandas用來做

資料處理

,numpy用來做

高維度矩陣運算

,scipy用來做

科學計算

,matplotlib用來做

資料視覺化

,scikit-learn用來做

機器學習與資料探勘

上面這幾個庫也就搭建了做資料分析&挖掘的經典workflow

:拿到資料之後先要做一個數據的

預處理

(pandas+numpy+scipy),接著會要對資料包含的特徵做一些

視覺化輸出

(matplotlib),之後需要

提取特徵&建模調參

(numpy+scikit-learn),有了

模型與結果

,最後

歸納整理

做presentation & report。

在明確了知識框架體系和workflow之後,

the next step is to

get your hands dirty

。找一找網上的開源資料集,選一個感興趣的,自己動手做資料分析&挖掘專案。用一種

project-driven

的視角去熟悉使用Python關於資料方面的這幾個庫。在遇到問題的時候,網上搜一搜(知乎,谷歌,StackOverflow),或者直接看Python這幾個庫的documentation(pandas,numpy&scipy,matplotlib,scikit-learn),或者翻一翻《利用Python做資料分析》。

除了學習Python的這幾個庫之外

,做資料探勘,對於數學&統計方面還是有很高的要求

,至少對於線性代數,機率論與數理統計,機器學習都要有一定程度的掌握。比如:在做資料探勘專案的時候,scikit-learn庫裡面已經涵蓋了基本的演算法。對於特徵、模型與演算法的選擇,一方面是書本知識的累積,你要掌握解決哪一類問題用什麼型別的演算法,而在具體問題時如何呼叫演算法,則是要反覆實踐的。

這就是不斷填充知識 & 不斷更新迭代,讓自己從小白變成老司機。

簡言之,學習資料探勘,入門很容易,進門之後放棄,更容易。

所以,多動手實踐,多積累知識,重在平時,貴在堅持。

再來嘗試回答本科生能否從事資料探勘?

冷靜思考現實:如果不是特別優秀的本科生,可能用人單位更傾向於去招一個學歷更高的人。因為做資料探勘是理論與實踐相結合的過程,需要對演算法進行深入的研究,更高學歷的求職者,意味著他們在讀取學位的過程中會有更多的時間與精力去做這累積。比如你是一家公司的老闆,想要招聘一個數據挖掘崗位,可能你會更願意跟擁有研究生學歷的求職者先聊聊,普通的本科生可能會被打上“不靠譜”的標籤。

難道本科生就真的沒有機會了麼

It depends。

學歷只是相對,個人的努力與能力才決定了上限

。多在讀書的時候修一點相關課程,多積累一些個人專案,多參與一些資料探勘比賽,這都是不斷完善自己資料探勘素養的過程。而且現在這樣的平臺也有很多,美國的kaggle算是資料科學社群的世界NO。1, 上面有很多使用者分享了自己的成果,你也可以組隊參加比賽。

當然,國內也有很棒的平臺社群 ---

Kesci

, Kesci是目前

國內唯一一個可以讓你線上執行計算

的資料科學平臺,並將自己的成果在社群做分享交流。What‘s more,

這裡也有眾多網際網路公司,電商平臺,以及Fintech企業透過在Kesci舉辦資料演算法比賽的方式為自己招募人才。是不是又多了一個思路?哈哈。

學知識,做專案,打比賽,你的努力與堅持,會讓你在資料探勘的道路上有所斬獲。

☆ END ☆

如果看到這裡,說明你喜歡這篇文章,請轉發、點贊。微信搜尋「uncle_pn」,歡迎新增小編微信「 mthler」,每日朋友圈更新一篇高質量博文。