一、处理数据的基本内容
数据分析 是指对数据进行控制、处理、整理、分析的过程。
在这里,“数据”是指结构化的数据,例如:记录、多维数组、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)),如果弹出一个包含一条直线的绘图框即表示安装成功。
打开 Terminal:
包含一条直线的绘图框: