还没到时候,不过是大趋势
2013-11-11
这本书是Pandas的模块作者写的书。
总的来说Python提供了很多方便,但是这种方便还是需要付出一定的学习成本的。使用Pandas可以把Python基本当作R用 用NumPy和SymPy还有SciPy把Python当作Matlab用。但是目前所有这些模块都还在开发阶段所以有很多问题需要解决,用户体验并不是非常友好,尤其是数据类型和能否改变数据值等等细节会让人特别累。
还有一个大问题是现在并没有专门针对Python数据分析提供的很好的IDE Pythonxy和Canopy Express都各有千秋但是都不够好,作为数据分析能够直接查看数据是很重要的,现在只有pythonxy支持variable explorer但是,而如果直接在IPython中查看数据的话会很不直观,除了pandas的dataframe会很直观以外,有一些简单的操作可能会因此变得非常复杂,而且用户缺乏对数据结构的直观观测很可能会产生一些非常微妙的bug。
另外每种模块中拓展的数据对象都有类似的成员函数,但是是用对象.成员函数调用还是直接调用函数造成的结果是不一样的。这主要是因为Python是面对大数据分析的,所以一个函数的结果到底是直接改变原有对象还是创建新对象不一定,创建的新对象跟原来的对象是不是引用或者只是一个复制,又不一定,各种包加进来之后会让事情变得很复杂。这些都是下一步需要解决的问题。
最后,IPyhon Notebook非常赞,但是不是所有人都会用Git并且创建一个gist,这就使得代码分享和可重复研究对于非职业程序员变得有点复杂,这不利于Python数据分析的发展。
总之路还很长,但是Python有很多好处,比如对于python的大部分拓展对象你都可以进行向量化操作,少写不少循环,代码会因此短而精干也易读,python可以从C++等语言输出端拿数据处理之后再返给C++和Fortran等,这些都意味无限的可能性。在我看来Python目前并不适合用来搞研究,倒是适合用来编写一个处理数据的胶水程序,而且并不是分析数据,而是重新整合数据使得它们更容易被分析。