Julia和Python:哪个最适宜机器学习和数据科学?

开宗明义:
Python已经变成了数据科学和机器学习的支柱 , 而Julia则是一开始就为此而构建 。
Julia和Python:哪个最适宜机器学习和数据科学?文章插图
在Python涵盖的许多用例中 , 数据分析可能已经成为最大和最重要的用例 。 Python生态系统中充满了库、工具和应用程序 , 这些使科学计算和数据分析工作变得快速和方便 。
但是对于Julia语言背后的开发者来说 , python还不够快 , 也不够方便 。 Julia语言()的目标是“科学计算、机器学习、数据挖掘、大规模线性代数、分布式和并行计算” 。 Julia的目标不仅是给科学家和数据分析师提供快速便捷的发展 , 同时也提供惊人的执行速度 。
1.何为Julia语言2009年 , 一个四人团队创建了Julia , 并于2012年公之于众 。 Julia旨在解决Python和其他语言以及用于科学计算和数据处理的应用程序中的缺陷 。 “我们很贪婪 , ”他们写道 。 他们想要的还更多:
我们想要实现一种开源的语言 , 并且有自由的许可 。 我们想要C的速度和Ruby的动态性 。 我们想要一种具有同形性的语言 , 具有像Lisp这样的真正的宏 , 但又具有像Matlab这样明显的、熟悉的数学符号 。 我们需要像Python那样可用于一般编程 , 像R那样容易用于统计 , 像Perl那样自然地用于字符串处理 , 像Matlab那样强大地用于线性代数 , 像shell那样善于将程序粘合在一起 。 这东西学起来很简单 , 却能让最严肃的黑客感到高兴 。 我们希望它是交互式的 , 我们希望它是编译的 。
(貌似我们说过应该和C一样快吧?)
原文表述如下:
We want a language that’s open source, with a liberal license. We want the speed of C with the dynamism of Ruby. We want a language that’s homoiconic, with true macros like Lisp, but with obvious, familiar mathematical notation like Matlab. We want something as usable for general programming as Python, as easy for statistics as R, as natural for string processing as Perl, as powerful for linear algebra as Matlab, as good at gluing programs together as the shell. Something that is dirt simple to learn, yet keeps the most serious hackers happy. We want it interactive and we want it compiled.
(Did we mention it should be as fast as C?)
以下是Julia实现这些愿望的一些方法:

  • Julia是编译的 , 不是解释的 。 为了提高运行时性能 , Julia是使用LLVM编译器框架实时编译的 。 在最好的情况下 , 茱莉亚可以接近或匹配C的速度 。
  • Julia是交互型的 。 Julia包含一个REPL (read-eval-print循环) , 或交互式命令行 , 类似于Python提供的命令行 。 可以快速而直接输入一次性脚本和命令 。
  • Julia有一个简单的语法 。 Julia的语法类似于Python的——简洁 , 但富有表现力 , 功能强大 。
  • Julia结合了动态类型和静态类型的优点 。 您可以为变量指定类型 , 如“无符号32位整数” 。 但是您也可以创建类型的层次结构 , 以允许用一般情况处理特定类型的变量—例如 , 编写一个接受整数的函数 , 而不指定整数的长度或符号 。 若在特定上下文中不需要输入类型 , 甚至可以完全不输入 。
  • Julia可以调用Python、C和Fortran库 。 Julia可以直接与用C和Fortran编写的外部库交互 。 还可以通过PyCall库与Python代码进行接口 , 甚至在Python和Julia之间共享数据 。
  • Julia支持元编程 。 Julia程序可生成其他Julia程序 , 甚至可以修改自己的代码 , 这让人想起Lisp之类的语言 。
  • Julia有一个功能齐全的调试器 。 Julia 1.1引入了一个调试套件 , 它在本地REPL中执行代码 , 允许您单步执行结果、检查变量和在代码中添加断点 。 您甚至可以执行细粒度的任务 , 比如单步执行由代码生成的函数 。

Julia和Python:哪个最适宜机器学习和数据科学?文章插图
2.Julia 和Python: Julia语言的优势对应Julia 和Python , Julia从一开始就是为科学和数值计算而设计的 。 因此 , 对于这样的用例场景 , Julia有许多优势的特性也就不足为奇了 , 诸如: