您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
Python相比Java,C++这些语言有什么优势,人工智能为什么首选它?
人工智能,语言,算法Python相比Java,C++这些语言有什么优势,人工智能为什么首选它?
发布时间:2020-12-06加入收藏来源:互联网点击:
Python相比Java,C++这些语言有什么优势,人工智能为什么首选它?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
最近几年伴随着大数据的发展,人工智能也迎来了前所未有的发展契机,大量的专业人才涌向了人工智能领域,相信未来人工智能领域会进一步赢得市场的追捧。
首先要说明的是人工智能方面的研发是可以使用Java的,我在早期做机器学习方面的实验使用的就是Java语言,当然C++也是可以的。为什么现在大部分研发人员都使用Python做人工智能方面的实验,一个很重要的原因就是用Python做实验开发周期短。
做一个简单的类比,我最初一段时间使用Java做算法实现,很多内容是需要自己完成的,如果使用Java来实现朴素贝叶斯算法(算法本身的基本实现)大概需要100行左右的代码,换做Python来实现同样的功能我只使用了40行代码,差距十分明显。
其次,还有一点比较关键,就是Python非常简单。使用过Java的程序员通常都有这样的感觉,Java是一个“仪式感”很强的语言,比如你使用Java只写了3个类和一个接口,此时你却可能需要打4个包,而这在Java程序员看来是理所当然的。Python在这一点上做的比较彻底,几乎通过代码缩进而取消了所有的仪式感,简单实用且不失优雅,所以使用Python比较容易。
另外,Python中定义了一系列库,比如Numpy、Matplotlib、Scipy等,这些库对人工智能开发起到了很大的帮助,使得使用Python开发更像是使用积木,只要把这些模块按照算法流程搭建起来就可以了,很多东西不用自己去构建,这当然节省了大量的开发时间。
最后,虽然大部分实验都使用Python开发,但是很多最终产品通常要使用其他语言来进行重写,因为Python太慢了。但是也要具体问题具体分析,我做过一个智能诊疗的机器学习系统,验证阶段和最终使用都采用了Python开发,因为效率能满足实际需要,使用云端部署能提供强大的计算能力从而保证了项目的运行效率。
总之,使用Python做人工智能方面的研发确实很方便,我目前也一直在使用Python,如果大家有这方面的问题,可以跟我交流。
回答于 2019-09-11 08:43:50
Python优势是易学,是一种轻量型脚本解释型动态语言,无指针,无须担心内存泄露等问题,最重要的是具有丰富的算法库。而Java等语言目标是支持多种场景使用,可以用于多种大型项目,是重量级静态语言,一般非常适合一些复杂的大型非计算型程序。因为人工智能对算法要求高,而Python支持的又好,又好用,所以就选他了啊。实际从Python运行原理上分析,它的运行速度并不快,但是它的优势掩盖了这些缺点啊!
回答于 2019-09-11 08:43:50
正好Python,Java,C++的项目我都做过,说说我的体会吧。
Java和C++都是我在工作中常常用到的,也是目前大型项目最常用的开发语言。没接触Python之前,有复杂的算法用Java写的更多一些。后来我业余时间开始做量化交易,大部分量化平台首选都是用的Python语言,于是就开始学Python,确是十分好用,现在已经写出了不少量化策略。
我认为Python的优势主要有以下几点:
易上手
这也是Python流行的最主要原因,由于Python的简洁设计,只要有点编程基础的话,学习Python非常简单,低门槛自然容易让比较多的人接受。
代码简洁
本来用Java写量化模拟,但后来用Python写了一对比,确实方便不少,特别是一些算法模拟的实验,如果用Java也能写,但就显得笨重。因为这些模拟实验往往是一些小的代码片段,Java或者C++是无法简洁的执行这么轻量的流程的。
轻量级
还是对于人工智能的研究实验,Python是一款轻量级的脚本语言,处理代码片段效率非常高,因此对运行环境的要求也不高,甚至很多网站都提供了在线的Python研究功能。这是Java和C++所不具备的。
科学计算
人工智能自然少不了大量的科学计算,Python里的各种科学计算库,数学库恰恰非常好用,不光效率高,而且好入门,让数学不好的人也能轻松使用。
最后说下,我觉得人工智能是综合技术的体现,不能说哪门语言就一定是首选了,比如TensorFlow是用了好几种编程语言的集合,用的最多的语言其实是C++,Python用量占第二位,根据不同的需求活用各种语言才是最佳解决方案。
回答于 2019-09-11 08:43:50
首先要说明的前提是,人工智能的底层算法通常还是C/C++,其他语言封装了其接口方便调用,所以看起来好像是其他语言。
Python相比于Java、C++相比,有一些优势让其在人工智能时代斩头露角:
1. 语法简单易学。Python等解释性语言通常语法更加接近伪代码,更加方便人类理解,因此相比于对机器友好的C等语言会更加容易上手。这对于需要专注于构建人工智能应用的统计学家和数据科学家来说更加友好,因此受到他们的欢迎。
2. 丰富的标准库和第三方库。Python的标准库提供了一系列可以方便数据处理的库,开发者们又写了很多可以方便数据处理、数据分析和各种计算的库,让Python的开发生态十分友好。比如说,处理字符串的标准库string、re等,做爬虫、处理网络数据的request、bs4等,科学计算和数据分析领域的numpy、scipy、statsmodels、sklearn、pandas、sympy等。
3. 胶水语言特性。Python可以通过各种原生支持和第三方库调用其他语言,这样可以充分结合许多语言的特性,可以大大提高开发效率和性能优势。在涉及大量计算的模块,可以使用C/C++等语言,其他模块使用Python丰富的标准库和第三方库即可。当然这对于开发者的开发能力要求比较高,要对许多语言熟悉。
上一篇:如果你在大街上看到一块钱掉在地上,你是选择无视它,还是拾起它?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |