您当前的位置:中国科技商情网资讯正文

有人说Julia比Python好还给出了5个理由

放大字体  缩小字体 2020-03-22 16:58:15  阅读:3907 作者:责任编辑NO。杜一帆0322

选自medium

作者:Emmett Boudreau

机器之心编译

参加:杜伟、张倩、肖清

本文作者从速度、通用性、多重派发、适用于 ML 的程度和包管理器 5 个方面论述了 Julia 言语相较于 Python 的优势地点。

Julia 是一种多范式的函数式编程言语,用于机器学习和计算编程。虽然 Python 通常被以为是一种面向对象的编程言语,其实它也是用于机器学习的多范式编程言语。必需求分外留意的是,Julia 言语更多地根据函数范式。此外,Julia 言语虽不如 Python 那么盛行,但在数据科学中运用 Julia 具有很大的优势,从而使它在许多情况下成为更好的编程言语挑选。

下文将从五个方面介绍 Julia 的优势地点。

速度

首要是速度,这是 Julia 言语引以为傲的一个重要方面。与 Python 需求解说器来履行代码不同,Julia 主要是依托自身完结编译。另一方面,与 C 言语等其他编译言语也不同的是,Julia 在运转时进行编译,而传统言语则是在履行前进行编译。假如 Julia 言语编写地十分好,它的速度与 C 言语适当、有时还能够超越 C 言语。Julia 言语运用即时编译器 Just In Time(JIT)compiler,它的编译速度十分快,虽然它编译时更像是一种解说型言语而非 C 或 Fortran 等传统初级编译言语。

通用性

咱们都知道通用性是 Python 言语相较于 Julia 言语的一个优势,的确有许多经过 Python 言语编写的项目无法运用 Julia 来完结。当然以上仅针对编程言语自身而言,咱们这儿说到的通用性是指能够与其他言语混合编程。Julia 代码遍及能够在 R、Latex、Python 和 C 等言语中直接运转。这在某种程度上预示着典型的数据科学项目具有一旦被编写完结并在 Julia 本地进行编译后,在其他编程言语中作为封装类或仅传递字符串运用的潜力。

PyCall 和 RCall 也是 Julia 言语的两大优势。考虑到 Julia 言语一大缺陷在于包的丰厚程度不及 Python 或 R 言语,运用 PyCall 和 RCall 在 Julia 代码中随时调用 Python 和 R 为用户更好的供给了极大的便当。PyCall 在 Julia 言语中得到了很好地完结,并且也十分有用。

多重派发

Julia 是一种十分共同的类型化言语,具有自己的履行形式和特征,但其间一个十分酷的特征是它的多重派发。首要,Julia 的多重派发速度十分快。除此之外,运用 Julia 的多态派发能够将函数界说运用为结构特点。这使得承继(inheritance)在 Julia 内部可行。不仅如此,运用 Julia 的多重派发还能轻松完结函数的扩展,这关于包扩展来说优点多多,由于不管何时显式地导入 method,用户都能够对它进行更改。因而,用户都能够很简单地显式导入自己的 method,并挑选相应结构将它扩展为一个新的函数。

适用于 ML 的程度

与 Python 不同,Julia 言语的意图是运用于计算学和机器学习范畴。Python 言语则创立于 20 世纪 90 时代前期,是一种面向对象的言语,并且自此之后也改变了许多。虽然 Python 具有很长的开展前史以及广泛的运用场景规模,但运用一种专门创立用于高档计算工作的言语能够带来很大的优点。

我以为在线性代数中运用 Julia 要好于 Python。原生的 Python 只能缓慢完结线性代数,而原生的 Julia 能够飞快地完结。这是由于,Python 最开端并不是开发来用于支撑与机器学习相关的一切矩阵和方程运算的。这并不意味着 Python 欠好,特别是当有了 NumPy 扩展库之后。但就不导入额定扩展库而言,Julia 更适合于这类数学运算。此外,与 Python 比较,Julia 的操作数体系与 R 言语的更为附近。运用 Julia 言语能够更快速、更简单地完结大多数线性代数运算,如以下代码所示:

包管理器

Julia 的 Pkg 包管理器秒杀 Python 的 Pip 包管理器。Pkg 自带 REPL 和 Julia 包,你能够从中构建、增加、移除、实例化包。由于 Pkg 和 Git 是绑定的使得以上操作特别便当。更新、增加包都十分简单。总归,比起 Python 的 Pip,Pkg 的运用体会在任何时候都要愉悦得多。

总结

R 也好,Julia 也好,Python 也好,你用什么言语其实没那么重要。重要的是,你要知道每种言语都有它的下风,没有哪种言语是无可挑剔的。特别是当你的程序用处广泛时尤为显着(从机器学习到 GUI 到 API)。综上所述,Julia 和 Python 相同是我很喜欢的言语之一。Python 有更好的包,假如项目满足小,我就会用 Python。可是关于具有数百万个调查成果的数据集,用 Python 读取数据都会变成一件难事。

总归,我对 Julia 的未来满怀等待。Julia 写起来很风趣,并且在未来的数据科学范畴可能会变得更有用。

本文为机器之心编译,转载请联络本大众号取得授权。

------------------------------------------------

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!