一、處理數(shù)據(jù)的基本內(nèi)容
數(shù)據(jù)分析是指對數(shù)據(jù)進(jìn)行控制茄靠、處理茂契、整理、分析的過程慨绳。
在這里掉冶,“數(shù)據(jù)”是指結(jié)構(gòu)化的數(shù)據(jù)真竖,例如:記錄、多維數(shù)組厌小、Excel 里的數(shù)據(jù)恢共、關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)、數(shù)據(jù)表等璧亚。
二讨韭、說說 Python 這門語言
Python 是現(xiàn)在最受歡迎的動態(tài)編程語言之一(還有 Perl、Ruby 等)癣蟋。近些年非常流行用 Python 建站透硝,比如流行的 Python Web 框架 Django。
Python 這類語言被稱為腳本語言疯搅,因?yàn)樗鼈兛梢跃帉懞喍檀植诘男〕绦虮羯茨_本。不過這好像在說 Python 無法構(gòu)建嚴(yán)謹(jǐn)?shù)能浖频尼E罚鋵?shí)經(jīng)過幾年來不斷改良罪治,Python 不但擁有強(qiáng)大的數(shù)據(jù)處理功能,而且完全可以用它構(gòu)建生產(chǎn)系統(tǒng)礁蔗。
不過由于 Python 是一種解釋型語言觉义,大部分 Python 代碼都要比編譯型語言(比如 C++ 和 Java)的代碼慢得多。所以在那些要求延遲非常小的應(yīng)用中瘦麸,為了盡最大可能優(yōu)化性能谁撼,使用 C++ 這種更低級且低生產(chǎn)率的語言更值得。
對于高并發(fā)滋饲、多線程的應(yīng)用程序厉碟,Python 也不是一種理想的編程語言,這是因?yàn)?Python 有一個叫 GIL(全局解釋器鎖)的東西屠缭,這是一種防止解釋器同時執(zhí)行多條Python 字節(jié)碼指令的機(jī)制箍鼓。這并不是說 Python 不能執(zhí)行真正多線程并行代碼,只不過這些代碼不能在單個 Python 進(jìn)程中執(zhí)行而已呵曹。
三款咖、與數(shù)據(jù)分析相關(guān)的 Python 庫
NumPy
NumPy 是 Python 科學(xué)計算的基礎(chǔ)包,它提供:
- 快速高效的多維數(shù)組對象 ndarray奄喂;
- 直接對數(shù)組執(zhí)行數(shù)學(xué)運(yùn)算及對數(shù)組執(zhí)行元素級計算的函數(shù)铐殃;
- 線性代數(shù)運(yùn)算、隨機(jī)數(shù)生成;
- 將 C跨新、C++富腊、Fortran 代碼集成到 Python 的工具等。
它專為進(jìn)行嚴(yán)格的數(shù)字處理而產(chǎn)生域帐。多為很多大型金融公司使用赘被,以及核心的科學(xué)計算組織如:Lawrence Livermore是整,NASA 用其處理一些本來使用 C++,F(xiàn)ortran 或Matlab 等所做的任務(wù)民假。
Pandas
Pandas 主要提供快速便捷地處理結(jié)構(gòu)化數(shù)據(jù)的大量數(shù)據(jù)結(jié)構(gòu)和函數(shù)浮入。
Matplotlib
Matplotlib 是最流行的用于繪制數(shù)據(jù)圖表的 Python 庫。
IPython
IPython 是 Python 科學(xué)計算標(biāo)準(zhǔn)工具集的組成部分羊异,是一個增強(qiáng)的 Python Shell事秀,目的是提高編寫、測試球化、調(diào)試 Python 代碼的速度秽晚。主要用于交互式數(shù)據(jù)處理和利用matplotlib 對數(shù)據(jù)進(jìn)行可視化處理。
SciPy
- SciPy 是一組專門解決科學(xué)計算中各種標(biāo)準(zhǔn)問題域的包的集合筒愚。主要包括以下包:
- scipy.integrate: 數(shù)值積分例程和微分方程求解器;
- scipy.linalg: 擴(kuò)展了由 numpy.linalg 提供的線性代數(shù)例程和矩陣分解功能菩浙;
- scipy.optimize: 函數(shù)優(yōu)化器以及根查找算法巢掺;
- scipy.signal: 信號處理工具;
- scipy.sparse: 稀疏矩陣和稀疏線性系統(tǒng)求解器劲蜻;
- scipy.special: SPECFUN(這是一個實(shí)現(xiàn)了許多常用數(shù)學(xué)函數(shù)的 Fortran 庫)的包裝器陆淀。
- scipy.stats: 標(biāo)準(zhǔn)連續(xù)和離散概率分布、各種統(tǒng)計檢驗(yàn)方法和更好的描述統(tǒng)計法先嬉;
- scipy.weave: 利用內(nèi)聯(lián) C++ 代碼加速數(shù)組計算的工具轧苫。
四、環(huán)境安裝與配置
很簡單疫蔓,以 Mac OS X 系統(tǒng)安裝步驟為例:
首先需要安裝 Xcode含懊,為了使用 gcc C 和 C++ 編譯器
下載并安裝 Unthought Canopy
下載地址:https://store.enthought.com/downloads/
Unthought Canopy 是面向科學(xué)計算的 Python 安裝包,已包含 NumPy, SciPy, Pandas, Matplotlib, IPython 等庫衅胀。
檢測是否安裝成功:
啟動 IPython岔乔,導(dǎo)入 pandas 并輸入 plot(arange(100)),如果彈出一個包含一條直線的繪圖框即表示安裝成功:
包含一條直線的繪圖框: