当前位置: 首页 > 科技观察

机器学习选择Python的13个理由

时间:2023-03-21 21:07:40 科技观察

Python编程语言与机器学习实践堪称“绝配”。1、Python是一种解释型语言,写程序非常方便。编写程序的便利性对于做机器学习的人来说是非常重要的。因为经常需要对模型进行各种修改,在编译型语言中很可能牵一发而动全身,所以在Python中通常可以在极短的时间内实现。例如用C等编译型语言写一个矩阵乘法,需要为操作数(矩阵)分配内存,为结果分配内存,手动调用GEMM到BLAS接口,最后手动回收内存空间,如果不使用智能指针。.Python差不多就是importnumpy;numpy.dot两句。当然,现在很多面向C/C++的库都支持托管内存管理,这也让开发过程变得简单很多,但是解释型语言还是有先天优势——不需要编译时间。这对机器学习这个需要大量原型设计和迭代的研究方向的工作效率非常有利。2、Python的开发生态成熟,有很多好用的库可以使用。除了上面提到的NumPy,还有SciPy、NLTK、OS(内置)等。Python灵活的语法也使得实现文本操作、list/dict理解等非常实用的功能变得非常容易(编写和运行效率高),配合Lambda使用就更方便了。这也是Python生态良性背后的一大原因。相比之下,虽然Lua也是一门解释型语言,但即使有LuaJIT这样的神器加持,也很难达到Python的水平。一是因为Python的前身占据了市场份额,二是因为它的各种不常用的感觉。设计(例如全局变量)。然而,在Lua-Pythonbridge和Torch的帮助下,Lua似乎是寄生的。3、Python非常高效解释型语言的发展已经大大超出了很多人的想象。许多语法糖,如列表理解,都是在靠近内核的地方实现的。除了JIT[1],还有Cython可以大大提高运行效率。最后,由于Python与C的接口,许多高效且对Python友好的库(如gnumpy和theano)可以加速程序的运行。在强大团队的支持下,这些库可能比一个不熟练的程序员更有效率。C写一个月调优效率更高。4.方便的数据存储,包括SQL、Hadoop、MongoDB、Redis、Spark等5.数据获取方便,有Scrapy、BeautifulSoup、Requests、paramiko等6.数据计算方便,有Pandas、Numpy、scipy等.7.方便用Matplotlib,VisPy等输出结果8.方便与其他语言交互ctypes,rpy2,Cython,SWIG,PyQt,Boost.Python。9.加速方便用PyPy、Cython、PyCUDA等。10.PyOpenGL、PyOpenCV、Mayavi2方便图形图像。11.信号处理方便PyWavelets,scipy.signal。12、云系统支持GitHub、SourceForge、EC2、BAT、HPC。13.python开源Python支持很多平台,包括Windows/Linux/UNIX/macOS。而且MATLAB太贵了,只能调用它的API,用Python省钱,省钱就是赚钱。比较Python和C++。C++的CPU效率比Python高很多,但是python是一门可以和任何语言结合的胶水语言。基于这个优势,很多用于数据处理的Python库底层都是用C++实现的,也就是说:你用Python写代码,但是效率是C++。只有那些for循环在Python中仍然有效。近几年机器学习最重要的是深度学习,深度学习用CUDAGPU加速比CPU快很多,而cuda是用C++写的。所以现在TensorLayer、theano等深度学习库都是Python编程,底层是C++。