学习这本书,先看下书中介绍的准备工作。
一 准备工作
>> 为什么用Python进行数据分析
因为Python有一个巨大的活跃的科学计算社区,而且有不断改良的库(pandas),并且在通用编程方面实力强大。可以只用Python一种语言去构建一个以数据为中心的应用程序。
>> 将Python作为“粘合剂”
作为一个科学计算平台,可以轻松集成C++、C和Fortran代码。最近Cython已成为对接C/C++的一大途径。
>> 解决“两种语言”问题
一般公司是用一种特定计算语言(Matlab)对新想法研究测试,再移植到实际的C#/Java环境中。但Python可以同时完成两者。
>> 为什么不选Python
Python是解释型编程语言,运行速度要比编译型语言慢(C++/JAVA)。
如果某些应用程序对延迟要求非常高,那么需要使用C++这种更低级,更低生产率的语言编程,用CPU时间换程序员的时间。
而且对于高并发、多线程的应用程序(尤其是拥有计算密集型线程的应用程序),Python并不理想。因为Python的全局解释锁(GIL)会防止解释器同时执行多条Python字节码指令的机制。
这并不是说Python不能执行真正的多线程并行代码,只不过这些代码不能在单个Python进程中执行而已。比如Cypthon项目可以集成OpenMP(一个用于并行计算的C框架)以实现并行处理循环,进而大幅提高数值算法的速度。
>> 重要的Python库:
1 Numpy 科学计算的基础包(多位数组对象ndarray)
2 Pandas 可以提供快速处理结构化数据的大量数据结构和函数,DataFrame 和 Series
3 mayploylib 绘制数据图标,与IPython配合,提供交互式绘图环境
4 IPython 是Python科学计算标准工具集的其中一个组成部分,提供高效的环境
5 SciPy 专门解决科学计算中各种标准问题域的包的集合