如果你已經決定把python作為你的程式設計語言,那麼,你腦海中的下一個問題會是:“進行資料分析有哪些python庫可用?”
python有很多庫可用來進行資料分析。但不必擔心,你不需要學習所有那些可用庫。你隻須了解5個python庫,就可以完成絕大多數資料分析任務。下面逐一簡單介紹這5個庫,并提供你一些最好的教程來學習它們。
1numpy
對于科學計算,它是python建立的所有更高層工具的基礎。以下是它提供的一些功能:
1. n維數組,一種快速、高效使用記憶體的多元數組,它提供矢量化數學運算 。
2. 你可以不需要使用循環,就對整個數組内的資料行标準數學運算。
3. 非常便于傳送資料到用低級語言(如c或c++)編寫的外部庫,也便于外部庫以numpy數組形式傳回資料。
numpy不提供進階資料分析功能,但有了對numpy數組和面向數組的計算的了解,能幫助你更有效地使用像pandas之類的工具。
教程:
1. scipy.org提供了numpy庫的簡要說明
http://scipy.org/
2. 這個教程棒極了,完全注重于numpy的可用性
https://vimeo.com/77263537
2scipy
scipy庫依賴于numpy,它提供便捷和快速的n維向量數組操作。scipy庫的建立就是和numpy數組一起工作,并提供許多對使用者友好的和有效的數值例程,如:數值積分和優化。scipy提供子產品用于優化、線性代數、積分以及其它資料科學中的通用任務。
我找不到比scipy.org更好的教程了,它學習scipy的最佳教程
http://docs.scipy.org/doc/scipy/reference/tutorial/
3pandas
pandas包含進階資料結構,以及和讓資料分析變得快速、簡單的工具。它建立在numpy之上,使以numpy為中心的應用變得簡單。
1. 帶有坐标軸的資料結構,支援自動或明确的資料對齊。這能防止由于資料沒有對齊,以及處理不同來源的、采用不同索引的資料而産生的常見錯誤。
2. 使用pandas更容易處理缺失資料。
3. 合并流行資料庫(如:基于sql的資料庫)中能找到 的關系操作。
pandas是進行資料清洗/整理(data munging)的最好工具。
1. pandas快速入門
http://pandas.pydata.org/pandas-docs/stable/10min.html
2. alfred essa有一系列關于pandas的視訊,這些視訊應該會讓你很好地了解基本概念。
http://alfredessa.com/data-analysis-tutorial/2-pandas-library/
3. 還有,不可錯過shane neeley提供的教程視訊,它全面介紹了numpy, scipy和matplotlib
https://www.youtube.com/watch?v=oyts9hwfgby
4matplotlib
matlplotlib是python的一個可視化子產品。它讓你友善地制作線條圖、餅圖、柱狀圖以及其它專業圖形。使用matplotlib,你可以定制所做圖表的任一方面。在ipython中使用時,matplotlib有一些互動功能,如:縮放和平移。它支援所有的作業系統下不同的gui後端(back ends),并且可以将圖形輸出為常見地矢量圖和圖形格式,如:pdf、svg、jpg、png、bmp和gif等。
1. showmedo網站上有一個關于很好地教程
http://showmedo.com/videotutorials/video?name=7200090&fromseriesid;=720
2. 推薦這本書packt出版社的操作寶典,對于初學者來說,這本書真是極棒的~
https://www.packtpub.com/big-data-and-business-intelligence/matplotlib-plotting-cookbook,
5scikit-learn
scikit-learn是一個用于機器學習的python子產品。它建立在scipy之上,提供了一套常用機器學習算法,讓使用者通過一個統一的接口來使用。scikit-learn有助于你迅速地在你的資料集上實作流行的算法。
看一下scikit-learn中提供的算法清單,你就會馬上意識到它包含了許多用于标準機器學習任務的工具,如:聚類、分類和回歸等。
http://scikit-learn.org/stable/user_guide.html
1. scikit-learn入門
https://www.youtube.com/watch?v=4onbvnm3isi
2. 來自于scikit-learn.org的教程
http://scikit-learn.org/stable/tutorial/index.html
:)
結束語
還有其它一些庫,如:用于自然語言處理的nltk,用于網站資料抓取的scrappy ,用于網絡挖掘的pattern ,用于深度學習的theano等。
但是,如果你正開始學習python,我建議你首先熟悉這5個庫。
我說過,這些教程都非常适合初學者。不過,在學習這些教程前,先要熟悉python語言的基本程式設計知識。
原文釋出時間為:2015-04-12
本文來自雲栖社群合作夥伴“大資料文摘”,了解相關資訊可以關注“bigdatadigest”微信公衆号