为什么说Python更适合做AI/机器学习?

译者 虎说八道

本文转自云栖社区

Python网络编程框架Twisted的创始人Glyph Lefkowitz(glyph):

编程是一项社交活动——Python社区已经认识到了这一点!

人工智能是一个全面的技术术语,通常意味着当前计算机科学研究中最先进的领域。

有一段时间,我们理所当然的认为基本图遍历是AI。那时候,Lisp是人工智能的专属语言,仅仅是因为研究人员更容易用它来做快速原型。我认为Python已经在很大程度上取代了它,因为除了类似的高层次功能之外,它还拥有出色的第三方库生态库和框架以及操作系统设施的完美集成。

Lispers可能会反对我的看法,所以我应该说清楚,我没有对Python在应用层次中的位置做出精确的陈述,只是说Python和Lisp都处于相同的语言类别中,像内存安全、模块、名称空间和高级数据结构。

在更具体的机器学习意义上,这是人们最近说的关于AI的最多的领域,我认为还有更具体的答案。

NumPy及其相应的生态系统的存在使得研究人员可以对高级别内容进行研究,并进行高性能的数字处理。如果不是有非常强的数字处理需求,机器学习是没有任何意义的。

Python社区致力于为非程序员提供友好的介绍和生态系统支持,这确实增加了其在数据科学和计算科学的应用。无数的统计工作人员、天文学家、生物学家和商业分析师已经成为Python程序员,并且他们对自己的工具也做了些许的改进。编程基本上成为了一种社交活动,Python社区比JavaScript以外的任何其他语言都承认这一点。

机器学习是一个特别集成度很高的学科,因为任何AI/机器学习系统都需要从现实世界中提取大量数据作为训练数据或系统输入,因此Python的框架库生态系统意味着它通常可以很好地访问和转换数据。

PSF联合创始人兼eGenix首席执行官

Marc-Andre Lemburg(@malemburg)

Python允许用户关注真正的问题

对于没有受过计算机科学培训的科学家来说,Python非常容易理解。当你尝试驱动你需要执行研究的外部库时,它可以帮助你消除许多必须处理的事项。

在Numeric(现在是NumPy)开始开发之后,增加了IPython笔记本(现在是Jupyter笔记本)、matplotlib和许多其他工具以使事情更加直观,Python让科学家主要考虑解决问题的方法,而不是去考虑那么多推动这些解决方案所需的技术。

与其他领域一样,Python是一种理想的集成语言,它将技术轻松绑定在一起。Python允许用户关注真正的问题,而不是花时间在实现细节上。除了为用户提供更方便的功能之外,Python还可以作为开发与外部库进行低级集成的理想平台。这主要是由于Python可以提供一个非常完整的API访问。

研究人员和Python机器学习的作者Sebastian Raschka(@rasbt):

对于数学和面向数据的人来说,Python非常容易使用。

我认为Python更适合做AI有两个主要原因。第一个原因是Python非常容易理解和学习。

我认为大多数从事机器学习和人工智能的人员都希望以最快捷的方式实现自己的想法。人工智能的重点是研究和应用程序,编程只是一个让你到达那里的工具。对于需要更多的数学和以数据为导向的人来说,编程语言学习起来越舒服,进入壁垒越低。

Python也是非常容易理解的,这有助于保持最新的机器学习和AI的现状,例如,阅读算法的代码实现时。尝试人工智能和机器学习的新思路往往需要实现相对复杂的算法,语言越简单,调试就越容易。

第二个主要原因是,虽然Python本身就是一种非常易于访问的语言,但我们在其之上有很多优秀的库,这使得我们的工作变得更容易。没有人愿意花时间从头开始重新实现基本算法(除了研究机器学习和人工智能)。大量已经存在的Python库帮助我们专注于更令人兴奋的事情。

Python也可以用于处理高效的C/C ++算法和CUDA/cuDNN实现的优秀包装语言,这就是为什么现有的机器学习和深度学习库在Python中高效运行的原因。这对于机器学习和AI领域的工作是非常重要的。

总而言之,我会说Python是一种伟大的语言,它可以让研究人员和从业者专注于机器学习和AI,并且比其他语言更少分心。

ThoughtWorks的技术负责人Luciano Ramalho(@ramalhoorg):

Python对科学计算有吸引力。

最重要和最直接的原因是NumPy和SciPy库支持scikit-learn这样的项目,因为它目前几乎是所有机器学习任务的标准工具。

创建NumPy,SciPy,scikit-learn和其他许多库的原因是因为Python有一些功能使其对科学计算非常有吸引力。Python有其简单而一致的语法,可以让软件工程师以外的人更易于使用编程。

另一个原因是运算符重载,它使代码可读和简洁。然后就是Python的缓冲协议(PEP 3118),这是外部库在处理类似数组的数据结构时与Python高效互操作的标准。最后,Python为科学计算提供了丰富的库生态系统,吸引了更多的科学家并创造了良性循环。

Mike Bayer,Red Hat的高级软件工程师和SQLAlchemy的创建者:

Python是严格和高度一致性的。

我们正在Python这个领域中开发我们的库。我们将有一定希望保留和优化的算法放入一个库中,如scikit-learn。然后我们继续迭代并分享关于我们如何组织和思考数据的笔记。

高级脚本语言非常适合人工智能和机器学习,因为我们可以快速移动并重试。我们创建的大部分代码代表的是实际的数学和数据结构,而不是模板。

像Python这样的脚本语言更好,因为它是严格的和高度一致性的。每个人都可以更好地理解彼此的Python代码。

IPython笔记本等工具的可用性使得我们可以在全新的水平上迭代和分享我们的数学和算法。

Python强调了我们正在努力完成的工作的核心,并且完全最小化了我们如何给计算机指令的所有其他内容,这就是它应该如何实现的,自动完成任何你不需要考虑的事情。

原文发布于微信公众号 - CDA数据分析师(cdacdacda)

原文发表时间:2018-03-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技大本营的专栏

机器学习,就用Python!五大专家详解其优势何在

编译 | AI科技大本营(公众号ID:rgznai100) 参与 | 林椿眄 编辑 | 明明 【AI科技大本营导读】Python 语言是机器学习领域最优秀的编程...

374120
来自专栏程序你好

数据科学的前6大语言

2012年的《哈佛商业评论》(Harvard business review)正确地将数据科学列为“21世纪最性感的工作”。即使在这份报告发表6年后的今天,《商...

21230
来自专栏全栈工程师成长之路

如何学习一门编程语言

61290
来自专栏玉树芝兰

如何不编程,采集网站评论信息?(视频教程)

最近的一次组会,我们请来了一位分享嘉宾——15级研究生庞琳同学,给我们科研团队分享网站评论数据的采集。

9720
来自专栏养码场

你和硅谷顶级程序员差这5点!

程序员和程序员之间也会有区别,就好像学生之间也会有学渣、学霸之别,编程之间也各有优异。

8620
来自专栏C语言C++游戏编程

我们不一样!老司机教你用C语言制作简单实用的撩妹神器!

你以为C语言就是提供一种编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言吗?你以为C语言就只是以一个标准规格写出的C语言程序可...

69900
来自专栏机器人网

机器人10大流行编程语言对比,你掌握了哪种?

我究竟应该先学哪种编程语言? 这是一个许多新入行的机器人工程师在他们职业生涯中至少会问一次的问题。不幸的是,这也是一个没有简单答案的问题。 也许更恰当的问题应该...

35580
来自专栏腾讯技术工程官方号的专栏

这个 BAT 组织的开放数据中心峰会,腾讯说了些啥?

本文内容是来自腾讯技术工程事业群网络平台部在“ODCC 2017开放数据中心峰会”现场的主题分享。

48120
来自专栏机器人网

工业机器人的编程语言和种类

机器人的开发语言一般为C、C++、C++ Builder、VB、VC等语言,主要取决于执行机构(伺服系统)的开发语言;而机器人编程分为示教、动作级机器人编程语...

74640
来自专栏编程

C加加能用来干什么?为什么要学C加加?学C加加了能干嘛?

20世纪80年代,AT&T Bell(贝尔)实验室的Bjarne Stroustrup博士及其同事在C语言的基础上成功开发出C++语言。C++语言是一种混合型语...

36290

扫码关注云+社区

领取腾讯云代金券