一、處理數據的基本內容
數據分析 是指對數據進行控制、處理、整理、分析的過程。
在這里,“數據”是指結構化的數據,例如:記錄、多維數組、Excel里的數據、關系型數據庫中的數據、數據表等。
二、說說Python這門語言
Python是現在最受歡迎的動態編程語言之一(還有Perl、Ruby等)。近些年非常流行用Python建站,比如流行的Python Web框架Django。
Python這類語言被稱為腳本語言,因為它們可以編寫簡短粗糙的小程序,即腳本。不過這好像在說Python無法構建嚴謹的軟件似的,其實經過幾年來不斷改良, Python不但擁有強大的數據處理功能,而且完全可以用它構建生產系統 。
不過由于Python是一種解釋型語言, 大部分Python代碼都要比編譯型語言(比如C++和Java)的代碼慢得多 。所以在那些要求延遲非常小的應用中,為了盡最大可能優化性能,使用C++這種更低級且低生產率的語言更值得。
對于高并發、多線程的應用程序,Python也不是一種理想的編程語言 ,這是因為Python有一個叫GIL(全局解釋器鎖)的東西,這是一種防止解釋器同時執行多條Python字節碼指令的機制。這并不是說Python不能執行真正多線程并行代碼,只不過這些代碼不能在單個Python進程中執行而已。
三、與數據分析相關的Python庫
NumPy
NumPy是Python科學計算的基礎包,它提供:
- 快速高效的多維數組對象ndarray;
- 直接對數組執行數學運算及對數組執行元素級計算的函數;
- 線性代數運算、隨機數生成;
- 將C、C++、Fortran代碼集成到Python的工具等。
它專為進行嚴格的數字處理而產生。多為很多大型金融公司使用,以及核心的科學計算組織如:Lawrence Livermore,NASA用其處理一些本來使用C++,Fortran或Matlab等所做的任務。
Pandas
Pandas主要提供快速便捷地處理結構化數據的大量數據結構和函數。
Matplotlib
Matplotlib是最流行的用于繪制數據圖表的Python庫。
IPython
IPython是Python科學計算標準工具集的組成部分,是一個增強的Python Shell,目的是提高編寫、測試、調試Python代碼的速度。主要用于交互式數據處理和利用matplotlib對數據進行可視化處理。
SciPy
- SciPy是一組專門解決科學計算中各種標準問題域的包的集合。主要包括以下包:
- scipy.integrate: 數值積分例程和微分方程求解器;
- scipy.linalg: 擴展了由numpy.linalg提供的線性代數例程和矩陣分解功能;
- scipy.optimize: 函數優化器以及根查找算法;
- scipy.signal: 信號處理工具;
- scipy.sparse: 稀疏矩陣和稀疏線性系統求解器;
- scipy.special: SPECFUN(這是一個實現了許多常用數學函數的Fortran庫)的包裝器。
- scipy.stats: 標準連續和離散概率分布、各種統計檢驗方法和更好的描述統計法;
- scipy.weave: 利用內聯C++代碼加速數組計算的工具。
四、環境安裝與配置
很簡單,以Mac OS X系統安裝步驟為例:
- 首先需要安裝Xcode,為了使用gcc C和C++編譯器
- 下載并安裝Unthought Canopy(下載地址:https://store.enthought.com/downloads/) Unthought Canopy是面向科學計算的Python安裝包,已包含 NumPy, SciPy, Pandas, Matplotlib, IPython等庫。
檢測是否安裝成功:
啟動IPython,導入pandas并輸入plot(arange(100)),如果彈出一個包含一條直線的繪圖框即表示安裝成功。
包含一條直線的繪圖框:
打算寫一個完整的系列,接下來一篇隨筆內容是:利用Python進行數據分析(二)嘗試處理一份JSON數據并生成條形圖,有興趣的朋友歡迎關注本博客,也歡迎大家添加評論進行討論。
本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請
點擊舉報。