一 利用Python进行数据分析
这是一本2013年出的书,所以已经落后了三年,在阅读时我需要注意这一点。Python拥有一个巨大的活跃的科学计算社区,拥有Pandas等一些不断改良的。而且Python可以作为粘合剂,如Cython项目可以对接C/C++代码。但是Python是一种解释型编程语言,因此大部分Python代码都要比编译型语言(比如C++和Java)编写的代码运行的慢得多。对于低延迟、高并发、多线程的应用程序,Python都不是最好的选择。
需要重点掌握的Python库。NumPy(Numerical Python)是Python科学计算的基础包,包含数组运算、线性代数运算、傅里叶变换,并可将C、C++、Fortran代码集成到Python的工具。Pandas(panel data)提供了处理结构化数据的数据结构和函数,包含大量高性能的时间序列处理功能。Matpolotlib是最流行的用户绘制数据图表的Python库,和IPython结合的很好,可以提供交互式的绘图环境。Ipython是Python科学计算标准工具集的组成部分,是一个增强的Python Shell,可以提高编写、测试、调试Python代码的速度。SciPy是专门解决科学计算中各种标注问题域的包的集合。
二 安装环境
EPDFree包含NumPy、SciPy、matplotlib和IPython,可以免去很多麻烦,下载地址:https://www.enthought.com/。还要安装Pandas,下载地址:http://pypi.python.org/pypi/pandas。
为了测试环境的有效性,可以前往https://github.com/pydata/pydata-book,下载测试和后续使用的代码。
三 NumPy的数组操作
以前有所掌握,不再深究。
四 Pandas的操作
pandas具有处理时间序列数据的能力,这一点十分值得了解。
Series类似一种字典,也是一种数组,可以使用(K,V)进行设置,支持查询和修改,可以直接将字典转换为Series格式,使用Series(dict)。支持按index对齐的运算。DataFrame可以自动将多个表进行对应上,每行是一个对象,列是字段,里面是值,整个效果已经类似一个关系型数据库了。
待续...