1.Python是解释语言,程序写起来非常方便因为经常需要对模型进行各种各样的修改,这在编译语言里很可能是牵一发而动全身的事情,Python 里通常可以用很少的时间实现。

  举例来说,在 C 等编译语言里写一个矩阵乘法,需要自己分配操作数(矩阵)的内存、分配结果的内存、手动对 BLAS 接口调用 GEMM 、最后如果没用 smart pointer 还得手动回收内存空间。Python 几乎就是 import numpy;numpy.dot 两句话的事。

  2.Python的效率很高

  解释语言的发展已经大大超过许多人的想象。很多比如 list comprehension 的语法糖都是贴近内核实现的。除了JIT[1]之外,还有 Cython 可以大幅增加运行效率。

  最后,还得益于Python对C的接口,很多像 gnumpy ,theano 这样高效、Python 接口友好的库可以加速程序的运行,在强大团队的支撑下,这些库的效率可能比一个不熟练的程序员用 C 写一个月调优的效率还要高。

  3.Python的开发生态成熟,有很多有用的库可以用

  除了上面说到的NumPy,还有SciPy、NLTK、OS(自带)等等不一而足。Python 灵活的语法还使得包括文本操作、list / dict comprehension 等非常实用的功能非常容易高效实现(编写和运行效率都高),配合 Lambda 等使用更是方便。这也是 Python 良性生态背后的一大原因。

  4.数据运算方便

  有 Pandas,Numpy,scipy 等。

  5.加速方便

  有 PyPy,Cython,PyCUDA 等。

  6.和其他语言交互方便

  有 ctypes,rpy2,Cython,SWIG,PyQt,Boost.Python 。

  7.数据获取方便

  有 Scrapy,Beautiful Soup,Requests,paramiko 等。

  8.输出结果方便

  有 Matplotlib,VisPy 等。

  9.图形图像方便

  有 PyOpenGL,PyOpenCV,Mayavi2 。

  10.python开源

  Python支持的平台多,包括 Windows / Linux / UNIX / macOS。而 MATLAB 太贵,只能调用其 API,用 Python 省钱,省钱就是赚钱。