Python是机器学习的最佳编程语言之一,其迅速地在学术界和相关研究领域威胁到甚至超过了R的主导地位。为什么Python在机器学习领域如此受欢迎呢?为什么Python对AI有好处?
Mike Driscoll采访了4位Python专家和机器学习社区人士,讨论了Python在AI和相关研究领域中如此受欢迎的原因。
编程是一种社会活动——Python的社区已经透彻认识到了这一点
Glyph Lefkowitz (@glyph)是Python网络编程框架Twisted(一个能用于Python异步开发的库)的创始人,他在2017年获得了PSF的社区服务奖。他是这么认为的:
人工智能是一个包罗万象的术语,它倾向于指当前计算机科学研究中最先进的领域。
曾经有一段时间,我们理所当然的以为基本图形遍历被认为是AI。在那个时候,Lisp是一种大型人工智能语言,因为它比一般的编程语言要高级,而且研究人员可以更容易地用Lisp做快速原型。我认为Python在总体上已经很大程度上取代了它,因为除了具有类似的高级功能外,它还有一个优秀的第三方库生态系统。
Lispers会反对,所以我应该说清楚,我并不是要捧高Python的地位,只是说Python和Lisp都是同一类语言,比如在垃圾回收、内存安全等机制、命名空间和高级数据结构等方面都具有相似的特点。
从机器学习的更具体的意义上说,也就是现在越来越多的人所说的人工智能,我认为有更具体的答案。NumPy的存在及其伴随的生态系统允许非常适合研究的高级内容的混合,以及非常高性能的数字处理。如果不是非常密集的数字运算,机器学习就什么都不是。
“……统计学家、天文学家、生物学家和业务分析师都已经成为Python程序员,并改进了这个语言。”
Python社区致力于为非程序员提供友好的介绍和生态系统支持,这确实增加了它在数据科学和科学计算的姊妹学科中的应用。无数的统计学家、天文学家、生物学家和业务分析师已经成为Python程序员,并改进了这个语言。编程本质上是一种社会活动,Python社区比除JavaScript之外的任何语言都更认可这一点。
Python让用户关注真正的问题
Marc-Andre Lemburg (@malemburg),PSF的联合创始人和eGenix的首席执行官。他是这样认为的:
Python对于没有受过计算机科学训练的人来说非常容易理解。当您试图执行研究所需的外部库时,它消除了您必须处理的许多复杂性。
在Numeric(现在是NumPy)开始开发之后,新增了IPython笔记本(现在是Jupyter笔记本)、matplotlib和许多其他工具,使事情变得更加直观,Python允许使用者主要考虑问题的解决方案,而不是驱动这些解决方案所需的技术。
“Python是一种理想的集成语言,可以轻松地将技术绑定在一起。”
Python是一种理想的集成语言,可以轻松地将技术绑定在一起。Python允许用户关注真正的问题,而不是将时间花在实现细节上。除了让用户更容易操作之外,对于开发外部库的底层集成人员来说,Python还是一个理想的粘合平台。这主要是因为Python非常容易通过一个漂亮而完整的C语言API访问。
Python有许多适合科学计算的特性
Luciano Ramalho (@ramalhoorg), ThoughtWorks技术负责人,PSF研究员。他是这么看的:
最重要和最直接的原因是NumPy和SciPy库支持像scikit-learn这样的项目,scikit-learn目前几乎是机器学习的标准工具。
首先创建NumPy、SciPy、scikit-learn和许多其他库的原因是Python具有一些特性,使其对科学计算非常方便。Python有一个简单且一致的语法,这使得非软件工程师更容易进行编程。
“Python得益于科学计算库的丰富生态系统。”
另一个原因是运算符重载,这使得代码可读且简洁。然后是Python的buffer protocol (PEP 3118),它是外部库在处理类似数组的数据结构时与Python有效互操作的标准。最后,Python得益于科学计算库的丰富生态系统,这吸引了更多的科学家与开发者,并创造了一个良性循环。
Python严格一致的特点使其对AI非常友好
Mike Bayer (@zzzeek), Red Hat高级软件工程师,SQLAlchemy的创建者。他是这么认为的:
我们在这个领域所做的是开发我们的数学模型和算法。我们正在把我们肯定想要保留的和优化的算法放入像scikit-learn这样的库中。然后,我们将继续迭代并共享关于如何组织和考虑数据的注释。
高级脚本语言是人工智能和机器学习的理想语言,因为我们可以快速转移数据,然后再试一次。我们创建的代码的大部分用于表示实际的数学和数据结构。
像Python这样的脚本语言甚至更好,因为它是严格和一致的。每个人都可以更好地理解彼此的Python代码,而不是使用其他具有混乱和不一致编程范例的语言。
Python重视我们正在努力做的工作的核心,并且完全最小化了我们如何给计算机下达指令等其他事情,这是应该的,自动化所有你不应该考虑的事情,让你更好地为了达到目标写代码。
我们的文章到此就结束啦,如果你希望我们今天的Python 教程,请持续关注我们,如果对你有帮助,麻烦在下面点一个赞/在看哦
Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典