Julia语言入门指南

在这个快速变化的技术世界中,持续学习是保持竞争力的关键。一旦停止学习,就会开始落后。在这种学习过程中,不断地寻找新工具和技术的最新发展。正是在这种不断学习的愿望驱使下,大约一年前接触到了Julia。当时它还处于非常早期的阶段——现在仍然如此!

但是,Julia有一些特别之处,使其成为所有未来数据科学家必须学习的强大工具。因此,决定写几篇文章来介绍它。这是第一篇文章,提供了学习Julia的动力、安装方法、当前可用的包以及如何成为Julia社区的一部分。

什么是Julia?

Julia是一种高级、高性能的动态编程语言,专为技术计算而设计,具有易于编写的语法。它提供了一个复杂的编译器、分布式并行执行、数值精度和广泛的数学函数库。

为什么需要另一种编程语言

理解其强大之处的最简单方式是将其视为一种语言,它具有像R这样的广泛统计包,像Python一样易于编写和学习,并且具有与C/C++相似的执行速度。如果仍然对提到的内容不感兴趣,请查看下面一些常见基准的比较:

C语言由gcc 4.8.2编译,从所有优化级别(-O0到-O3)中选择最佳时间。C、Fortran和Julia使用OpenBLAS v0.2.12。Python实现的rand_mat_stat和rand_mat_mul使用NumPy(v1.8.2)函数;其余是纯Python实现。

数据科学能力的角度来看,一些重要的特点是:

  • 良好的性能,接近静态编译语言如C的性能
  • 内置的包管理器,使生活更轻松
  • 类似Lisp的宏和其他元编程设施
  • 直接调用C函数和Python函数:使用PyCall包
  • 强大的shell类功能,用于管理其他进程
  • 为并行和分布式计算而设计
  • 用户定义的类型与内置类型一样快速且紧凑
  • 自动为不同类型的参数生成高效、专门的代码
  • 优雅且可扩展的数值和其他类型的转换和提升
  • MIT许可:免费且开源

Julia的安装

现在可能已经迫不及待地想尝试上述承诺的Julia了,让快速介绍几种选项来测试新轿车(它具有跑车般的加速度):

  1. 在浏览器中尝试Juliabox - 最简单的选项,无需设置。只需访问Juliabox,使用Google登录(如果没有Google账户,抱歉,请尝试下一个版本),实例就准备好了。
  2. 使用IDE - Juno似乎是目前最好的IDE。遗憾的是,JuliaStudio不再受支持。安装它的最好方式是从Julia网站下载组合包。
  3. 使用命令行 - 如果是一个硬核程序员,没有命令行就无法想象编程语言,别担心!也有一个选项适合。可以在这里下载包。
  4. 使用iJulia笔记本 - 如果是一个Python探索者,并且已经使用iPython进行交互式数据探索 - 这里有好消息。iJulia笔记本同样令人敬畏,并继承了类似的界面。为了安装iJulia,需要先安装iPython,然后安装Julia 0.3或更高版本。接下来启动Julia并添加“IJulia”包,然后开始使用它。可以在这里找到更多细节。

一些重要的包

截至2015年7月9日,Julia共有610个包。如果过滤掉测试失败或未经测试的包,只剩下381个包。在这些包中,过滤出了与数据科学相关的包,并且拥有超过15个星标。以下是这些包的列表:

描述 版本 星标
BackpropNeuralNet Julia中的神经网络 0.0.3 18
Bokeh Julia的Bokeh绑定 0.1.0 26

如何安装和使用包?

在Julia中安装和使用包非常简单。如果想安装/添加一个包,只需在编程界面中输入以下内容:

Pkg.add("Gadfly")

这将安装该包及其依赖项。一旦包安装完成,可以通过调用“using”来加载它:

using Gadfly

简单吧!

Julia得到了一个紧密的开发者社区的支持。以下是一些可以加入的邮件列表:

  • julia-news - 用于重要公告,例如新版本发布。
  • julia-users - 讨论Julia的使用。Julia的新用户可以在这里提问。
  • julia-stats - 专门用于讨论与Julia统计编程相关的邮件列表。感兴趣的主题包括DataFrame支持、GLM建模以及为贝叶斯模型自动生成MCMC代码。
  • julia-opt - 讨论Julia中的数值优化。这包括数学规划(线性、混合整数、圆锥、半定等)、有约束和无约束的基于梯度和无梯度优化,以及相关主题。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485