Julia和Python:哪个最适宜机器学习和数据科学?
开宗明义:
Python已经变成了数据科学和机器学习的支柱 , 而Julia则是一开始就为此而构建 。
文章插图
在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中执行代码 , 允许您单步执行结果、检查变量和在代码中添加断点 。 您甚至可以执行细粒度的任务 , 比如单步执行由代码生成的函数 。
文章插图
2.Julia 和Python: Julia语言的优势对应Julia 和Python , Julia从一开始就是为科学和数值计算而设计的 。 因此 , 对于这样的用例场景 , Julia有许多优势的特性也就不足为奇了 , 诸如:
- Julia运行速度快 。 Julia的JIT编译和类型声明意味着它通常可以在数量级上击败“纯的”、未优化的Python 。 可以通过外部库、第三方JIT编译器(PyPy)以及Cython等工具的优化来加快Python的速度 , 但是Julia被设计为一开始就实现加速运行 。
- Julia有一个数学友好的语法 。 Julia的主要目标受众是科学计算语言和环境(如Matlab、R、Mathematica和Octave)的用户 。 Julia的数学运算语法看起来更像是在计算世界之外而编写数学公式的方式 , 让非程序员更容易上手 。
- 中国|浅谈5G移动通信技术的前世和今生
- 芯片|华米GTS2mini和红米手表哪个好 参数功能配置对比
- 桌面|日常使用的软件及网站分享 篇一:几个动态壁纸软件和静态壁纸网站:助你美化你的桌面
- 二维码|村网通?澳大利亚一州推出疫情追踪二维码 还考虑采用人脸识别和地理定位
- 不到|苹果赚了多少?iPhone12成本不到2500元,华为和小米的利润呢?
- 机器人|网络里面的假消息忽悠了非常多的小喷子和小机器人
- 华为|骁龙870和骁龙855区别都是7nm芯片吗 性能对比评测
- 花15.5亿元与中粮包装握手言和 加多宝离上市又进一步?|15楼财经 | 清远加多宝
- 和谐|人民日报海外版今日聚焦云南西双版纳 看科技如何助力人象和谐
- 内容|浅谈内容行业的一些规律和壁垒,聊聊电商平台孵化小红书难点(外部原因)