为何Python更适合做AI/机器学习?五位大牛为你解答

640?wx_fmt=png

来源:云栖社区

本文约2000字,建议阅读5分钟。

为什么Python会在这股深度学习浪潮中成为编程语言的头牌?听听大牛如何解释吧!


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


640?wx_fmt=jpeg


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


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


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


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


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


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


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


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


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

Marc-Andre Lemburg(@malemburg)


640?wx_fmt=jpeg


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


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


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


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


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


640?wx_fmt=jpeg


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


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


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


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


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


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


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


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


640?wx_fmt=jpeg


Python对科学计算有吸引力。


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


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


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


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


640?wx_fmt=jpeg


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


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


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


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


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


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


640?wx_fmt=png

640?wx_fmt=jpeg

没有更多推荐了,返回首页