首页 / 知识
机器学习选择python的原因
2023-11-12 13:37:00
Python程序语言与机器学习实践可以称得上是“珠联璧合”。
1.Python是解释语言,程序写起来非常方便
写程序方便对做机器学习的人很重要。
因为经常需要对模型进行各种各样的修改,这在编译语言里很可能是牵一发而动全身的事情,Python里通常可以用很少的时间实现。
举例来说,在C等编译语言里写一个矩阵乘法,需要自己分配操作数(矩阵)的内存、分配结果的内存、手动对BLAS接口调用GEMM、最后如果没用smartpointer还得手动回收内存空间。Python几乎就是importnumpy;numpy.dot两句话的事。
当然现在很多面向C/C++库已经支持托管的内存管理了,这也让开发过程容易了很多,但解释语言仍然有天生的优势--不需要编译时间。这对机器学习这种需要大量prototyping和迭代的研究方向是非常有益工作效率的。
2.Python的开发生态成熟,有很多有用的库可以用
除了上面说到的NumPy,还有SciPy、NLTK、OS(自带)等等不一而足。Python灵活的语法还使得包括文本操作、list/dictcomprehension等非常实用的功能非常容易高效实现(编写和运行效率都高),配合Lambda等使用更是方便。这也是Python良性生态背后的一大原因。相比而言,Lua虽然也是解释语言,甚至有LuaJIT这种神器加持,但其本身很难做到Python这样,一是因为有Python这个前辈占领着市场份额,另一个也因为它本身种种反常识的设计(比如全局变量)。不过借着Lua-Pythonbridge和Torch的东风,Lua似乎也在寄生兴起。
3.Python的效率很高
解释语言的发展已经大大超过许多人的想象。很多比如listcomprehension的语法糖都是贴近内核实现的。除了JIT[1]之外,还有Cython可以大幅增加运行效率。最后,得益于Python对C的接口,很多像gnumpy,theano这样高效、Python接口友好的库可以加速程序的运行,在强大团队的支撑下,这些库的效率可能比一个不熟练的程序员用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写code,但效率是C++的。只有那些for循环,还是用Python的效率高。
近年来机器学习最要是深度学习,而深度学习使用CUDAGPU加速远比CPU要快,而cuda是C++写的。所以现在TensorLayer、theano等深度学习库都是Python编程、底层C++。
以上内容为大家介绍了机器学习选择python的原因,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们http://www.mobiletrain.org/
最新内容
相关内容
Python网络编程调用接收数据的三种
Python网络编程调用接收数据的三种方法,数据,代码,基础,通用,通讯,服务,网络,培训,方法,报文,最近在使用python进行网络编程开发一个通用的tc数据科学领域Python比R语言更好
数据科学领域Python比R语言更好,数据,公司,工具,时间,项目,工作,庞大,受益,系统,代码,经常有学员问我们,在数据科学领域里,到底是该选Python呢,Python 3.6 中针对文件系统的神奇
Python 3.6 中针对文件系统的神奇方法,数字,代码,数据,标准,信息,培训,首次,工作,文件名,常数,Python3.6首次发布于2016年,尽管它已经发布了很Python语言自带的数据结构有哪些
Python语言自带的数据结构有哪些,异常,数字,数据,元素,序列,培训,位置,名称,分析,括号,Python作为一种脚本语言,其要求强制缩进,使其易读、美观提升Python数据分析能力的方法
提升Python数据分析能力的方法,分析,数据,工具,代码,时间,环境,报告,信息,培训,标准,1.Pandas分析包这个工具的好处是显而易见的。下面的动画数据科学中必须了解的Python核心库
数据科学中必须了解的Python核心库,数据,生产,代码,标准,分析,培训,图片,工具,统一,涉足,python有三个核心数据科学库,在此基础上还创建了许多Python集合和时间复杂度
Python集合和时间复杂度,项目,时间,数据,数字,照片,情况,通用,培训,平均,表示,在本文的这一部分中,我将记录CPython中的常见集合,然后概述它们使用Python处理JSON格式的数据
使用Python处理JSON格式的数据,数据,代码,名称,信息,培训,对比,灵活,字典,文件,格式,如果你不希望从头开始创造一种数据格式来存放数据,JSON是Python变量数据类型的转换
Python变量数据类型的转换,代码,数据,培训,信息,字符串,类型,变量,整数,浮点,函数,虽然Python是弱类型编程语言,不需要像Java或C语言那样还要Python元类之通过元类实现数据库OR
Python元类之通过元类实现数据库ORM框架,数据,名称,信息,代码,主体,当中,字段,分析,一致,投入,ORM框架是什么如果是没有做过后端的小伙伴上来Python系统互动
Python系统互动,互动,系统,管理,通信,标准,管理系统,培训,操作系统,功能,进程,系统互动,主要指Python和操作系统(operatesystem)、文件系统(fi简述Python数据库三大范式?
简述Python数据库三大范式?,数据,设计,公司,信息,培训,数据库,字段,范式,订单,关系,python数据库的三大特性:实体:表属性:表中的数据(字段)关系