正如我在“ 朱莉娅是什么? ”, Julia是一种用于数值计算的免费开源高级,高性能动态编程语言,它将动态语言的开发便利性与已编译的静态类型语言的性能相结合。 它设计用于科学计算,机器学习,数据挖掘,大规模线性代数,分布式计算和并行计算,并且易于使用Python,R甚至Matlab。

使用Julia的方法有五个主要选择: Julia命令行的安装; JuliaPro的安装; Visual Studio Code以及一个插件和一个Julia或JuliaPro安装; 和Juyter笔记本和IJulia。 让我们考虑一下每种方法的利弊。

[InfoWorld的要点: 用于AI开发的5种最佳编程语言 。 • 为什么应该使用Python进行机器学习 。 • 朱莉娅与Python的对决:朱莉娅语言在数据科学方面的兴起 • 5个基本的Python数据科学工具-现已得到改进 • 数据科学的Python发行版Anaconda入门 。 • Python的Anaconda发行版中的新增功能 。 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

JuliaBox在线不需要安装或维护,您可以使用免费帐户开始。 它是为Jupyter笔记本电脑设置的,已经添加了300多个软件包,并且以Jupyter笔记本电脑的形式提供了数十个教程。 许多笔记本与Julia官方视频教程捆绑在一起。 Jupyter笔记本非常适合解释您的计算,如下所示。

IDG

Jupyter笔记本使您随身携带的文件变得很容易。

不利的一面是,JuliaBox的免费层有时看起来很慢,尽管相对便宜的按月付费订阅可以为您提供更多的内核,更多的RAM和更长的会话。 此外,Jupyter笔记本比大笔记本更适合解决小问题,并且不如实际编程的IDE好。

正如我在“ 朱莉娅是什么? ”, Julia是一种用于数值计算的免费开源高级,高性能动态编程语言,它将动态语言的开发便利性与已编译的静态类型语言的性能相结合。 它设计用于科学计算,机器学习,数据挖掘,大规模线性代数,分布式计算和并行计算,并且易于使用Python,R甚至Matlab。

使用Julia的方法有五个主要选择: Julia命令行的安装; JuliaPro的安装; Visual Studio Code以及一个插件和一个Julia或JuliaPro安装; 和Juyter笔记本和IJulia。 让我们考虑一下每种方法的利弊。

[InfoWorld的要点: 用于AI开发的5种最佳编程语言 。 • 为什么应该使用Python进行机器学习 。 • 朱莉娅与Python的对决:朱莉娅语言在数据科学方面的兴起 • 5个基本的Python数据科学工具-现已得到改进 • 数据科学的Python发行版Anaconda入门 。 • Python的Anaconda发行版中的新增功能 。 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

JuliaBox在线不需要安装或维护,您可以使用免费帐户开始。 它是为Jupyter笔记本电脑设置的,已经添加了300多个软件包,并且以Jupyter笔记本电脑的形式提供了数十个教程。 许多笔记本与Julia官方视频教程捆绑在一起。 Jupyter笔记本非常适合解释您的计算,如下所示。

IDG

Jupyter笔记本使您随身携带的文件变得很容易。

不利的一面是,JuliaBox的免费层有时看起来很慢,尽管相对便宜的按月付费订阅可以为您提供更多的内核,更多的RAM和更长的会话。 此外,Jupyter笔记本比大笔记本更适合解决小问题,并且不如实际编程的IDE好。

如果安装开源Julia命令行 ,则需要添加许多软件包才能使其变得有用。 从好的方面来说,命令行可以快速安装。 不利的一面是,打扰您的开发流程以安装缺少的软件包可能很烦人。

IDG

Julia命令行。

JuliaPro为Julia命令行提供了预安装的许多软件包(如上所示),并添加了基于GitHub Atom编辑器的Juno IDE(如下所示)。 JuliaPro提供免费的个人版和付费企业版。 Juno是用于Julia编程和调试的不错的多窗格环境。

适用于您的操作系统的JuliaPro快速入门指南将包括Julia命令行的位置。 它因版本而异。 虽然您可以并排安装Julia的多个版本,但无需这样做。 更新Julia时,还应该更新软件包: Pkg.update()

IDG

Julia的Juno IDE基于Atom。

另一个不错的选择是使用Visual Studio Code开发Julia程序。 您需要安装Julia命令行,并将Julia插件添加到Visual Studio Code。 我必须先关闭并重新启动Visual Studio Code,然后它才能识别命令行位置。 这种配置为您提供了与Juno相似的功能,包括Julia Plot窗格,其优点是除了Julia之外还可以使用其他语言进行编程。

IDG

Julia在Visual Studio代码中。

IJulia for Jupyter笔记本电脑为您提供了一个类似于JuliaBox的环境,您可以根据需要在自己的计算机上运行它。 您需要通过安装Anaconda或使用pip来安装适用于Python 2或Python 3的Jupyter。 一旦工作成功,并且从Julia命令行使用Pkg.add("IJulia")安装了Pkg.add("IJulia") ,则可以启动IJulia和notebook()

using IJulianotebook()

如果要为笔记本服务器创建新进程,则可以使用Julia的notebook(detached=true) 。 如果要在Julia的特定目录中打开笔记本,则可以使用dir参数notebook(dir="/some/path") 。 默认值为您的主目录。

根据文档,您还应该能够从系统命令行运行jupyter notebook并启动Julia内核。 当前,当我尝试执行笔记本代码行时,这会在MacBook Pro上导致内核异常,即使从Julia命令行启动相同的笔记本也可以正常工作。 我从Julia内部启动了下面显示的笔记本。

IDG

在Jupyter笔记本中使用Gadfly的正弦图。

如果您想在本地而非在线运行JuliaBox教程,则可以从GitHub克隆教程库 。 然后,在本地JuliaBoxTutorials目录中打开一个笔记本,并运行Local_installations笔记本以安装教程中使用的所有软件包。 为此,请花一些时间-这将比您预期的要长。

如果在安装IJulia之后更新Julia或JuliaPro,则需要从Julia命令行Pkg.build("IJulia")重建IJulia。

朱莉娅基础知识

既然您已经在本地设置了Julia或决定使用JuliaBox,那么让我们看一下如何使用它们,并运行一些示例。

首先,打开Julia或JuliaPro REPL。 按? ,并注意提示如何更改以提供help?> 。 输入help并按Enter键,您将看到类似以下屏幕的内容。

IDG

Julia命令行帮助。

现在尝试建议的帮助请求之一,例如?@time ,然后按Enter键。 继续尝试交互式评估某些表达式。 在下面的屏幕截图中,我从@time的帮助中获得了@time ,并且还进行了两次测试-第一次是由于实时(JIT)编译产生了开销。 我可以从帮助中复制和粘贴; 我还能够在终端中向上滚动历史记录以重新运行上一个命令。

IDG

参加朱莉娅·REPL。

完成Julia REPL的播放后,请按Control-D或键入exit()

现在让我们尝试一下JuliaBox。 浏览至https://juliabox.com 。 您将被重定向到此网页:

IDG

JuliaBox起始页。

我通常使用GitHub凭据登录,但请随时使用您的Google或LinkedIn ID登录。 我仍然使用免费订阅。 当我需要更多的内核或更长的会话时,如上所述,我可以使用IJulia在本地运行Jupyter笔记本。

笔记本初始化后,单击进入tutorials文件夹,然后单击intro-to-julia文件夹,再单击short-version,最后打开00.Jupyter_notebooks。 按照说明进行操作,使用Shift-Enter实时浏览笔记本并阅读每一行。 完成的笔记本应大致类似于以下屏幕截图。

IDG

Julia中完整的Jupyter笔记本教程。

您会注意到? 即使笔记本中的提示未更改,Julia REPL也可以共享帮助符号。 的; shell命令的符号也可以在REPL中使用,并导致提示更改为shell>

IDG

朱莉娅壳。

外壳的确切作用取决于底层操作系统。 在这里,我将MacOS与默认的Bash shell配合使用。 在Windows 10上,从Julia shell>提示符下,我发现必须选择要运行的OS Shell,无论是Command Shell还是PowerShell:

IDG

您可以在Windows 10的Julia Shell提示符下访问Command Shell和PowerShell。

回到JuliaBox,关闭00.Jupyter_notebooks笔记本,然后打开01.Getting_to_know_Julia笔记本。 同样,使用Shift-Enter顺序浏览笔记本,并随行阅读每一行。

提示:Unicode的制表符完成序列在“ 与Julia交互”文档中进行了描述,完整列表在Unicode Input文档中 。 搜索\:mahjong:以查看表情符号字形 ,例如\:cat:<TAB>\:dog:<TAB> 这些可在REPL和Julia笔记本中使用。

注意讨论的数据结构。 作为您自己的快速测验,哪些数据结构是可变的,哪些是不可变的? 哪些包含有序序列,哪些包含无序序列?

使用功能时,请特别注意。 请注意用于定义函数的三种语法样式。 还请注意! 在函数名称的末尾:

IDG

! 名称末尾表示Julia中的变异函数。

如果继续进行下去,您会看到高阶函数map ,您可能会从其他语言中了解到它,并且broadcastmap的一般化。 还要注意广播的点语法:

IDG

注意Julia的点语法用于广播。

朱莉娅线性代数运算

我强烈建议您继续使用02.Linear_Algebra笔记本,并阅读有关线性代数的文档 。 假设您已经学习了大学线性代数并使用矩阵进行了数值计算,那么您必须对以下语言印象深刻:该语言的运算符可以解决线性系统,知道如何表示对称三对角和Hermitian矩阵,并且具有特征值和特征向量的功能,并计算矩阵分解。

IDG

Julia对线性代数运算的支持水平令人印象深刻。

朱莉娅基准

在笔记本05.Julia_is_fast中,可以将Julia的速度与其他语言进行比较,以解决一个简单的问题,即求和1000万个随机数。 如果您得到的答案像我的一样,您会发现内置的Julia sum()函数比NumPy快一点。 手写Julia循环的速度大约是该速度的一半,与手写C函数几乎相同。 使用内置Python sum()函数,不带NumPy的普通Python的速度要慢一个数量级,比使用手写Python的速度慢三倍。

IDG

朱莉娅的一些基准测试结果。

朱莉娅图形和绘图

朱莉娅(Julia)有很多生成图和显示图形的方法。 Julia中最受欢迎的三个绘图软件包是Plots,PyPlot和Gadfly。

Plots是一个绘图元程序包,它在一个API下带来了许多不同的绘图后端程序包,并在JuliaBox上的绘图教程中进行了介绍 。 PyPlot调用标准的Python包Matplotlib,并且是Plots的首选后端之一。 Gadfly是Wickham-Wilkinson样式图形语法的一种实现,类似于流行的R包Ggplot2,并且在Julia的几本出版物中都有介绍,包括语言速度比较基准 。

让我们尝试从“ 图解”教程中获取一个非常简单的图解示例 。 在您最喜欢的Julia环境中,运行以下程序:

using Plotsx = 1:10; y = rand(10); # These are the plotting dataplot(x,y)

如果收到错误消息告诉您未安装绘图,请使用Pkg.add("Plots")修复,然后重新运行该程序。

在我的安装中,第一次运行向我展示了:

IDG

使用Julia's Plot plotting meta-package的简单绘图。

当我重新运行该程序时,数据是不同的,因为它是随机生成的,因此折线图看起来有所不同。

为了更好地演示Plots的功能,请考虑Plots文档中的以下程序:

using Plots, ProgressMeterpyplot(leg=false, ticks=nothing)x = y = linspace(-5, 5, 40)zs = zeros(0,40)n = 100

# create a progress bar for tracking the animation generationprog = Progress(n,1)

@gif for i in linspace(0, 2π, n)    f(x,y) = sin(x + 10sin(i)) + cos(y)

    # create a plot with 3 subplots and a custom layout    l = @layout [a{0.7w} b; c{0.2h}]    p = plot(x, y, f, st = [:surface, :contourf], layout=l)

    # induce a slight oscillating camera angle sweep, in degrees (azimuth, altitude)    plot!(p[1],camera=(15*cos(i),40))

    # add a tracking line    fixed_x = zeros(40)    z = map(f,fixed_x,y)    plot!(p[1], fixed_x, y, z, line = (:black, 5, 0.2))    vline!(p[2], [0], line = (:black, 5))

    # add to and show the tracked values over time    zs = vcat(zs, z’)    plot!(p[3], zs, alpha = 0.2, palette = cgrad(:blues).colors)

    # increment the progress bar    next!(prog)end

该程序生成的动画GIF如下所示:

IDG

Julia的Plot程序包可以生成精美的3D图。

上面的精美3D图是使用PyPlot作为图的后端创建的。 您可以直接调用PyPlot,前提是您已安装PyPlot并已安装Matplotlib Python软件包。 利用PyPlot README中的基本用法示例 ,我们可以在REPL中运行四行代码,并在单独的窗口中获取该图,如下所示:

IDG

您可以直接从Julia调用PyPlot。

实际上,使用PyPlot和PyPlot后端可以进行的所有操作也可以直接使用PyPlot进行。 如果你适应Python代码的呼叫matplotlib.pyplot在朱莉娅的使用,它可能会更快打电话PyPlot不是重写代码的地块。 如果您从一个绿色的字段开始,则调用Plots可能会更容易,这也使您可以选择与另一个后端创建交互式绘图。

Gadfly具有许多功能,并且不依赖Python,但仅限于2D图形。 此外,Gadfly需要一段时间才能发布其第一张图,并且具有许多Julia依赖项。 但是,Gadfly与R程序包Ggplot2非常相似,以至于我马上就弄清了它的语法,因此如果我要改编R绘图代码,便会使用它。 最简单的说,您可以在using语句后using Gadfly生成带有一行代码的绘图:

using Gadflyplot(sin,0,25)

如果第一行出现错误,请使用Pkg.add("Gadfly")

当我在Julia REPL中运行此代码时,它(最终)打开了一个浏览器选项卡,其中显示了该图:

IDG

Julia的Gadfly程序包产生的正弦图。

牛fly图可能非常复杂。 基准笔记本电脑就是一个很好的例子。 遵循Gadfly教程中的示例稍微容易一些,该示例使用标准R数据库进行虹膜分类。 根据运行本示例的位置,可能先运行Pkg.add("RDatasets")

using RDatasetsiris = dataset("datasets", "iris")plot(iris, x=:SepalLength, y=:SepalWidth, color=:Species,         Geom.point)

这将显示虹膜中隔长度与中隔宽度的关系,并按物种进行颜色编码,如下所示。 您实际上可以看到这些簇,尤其是在左上方(短而宽的萼片)可以看到Setosa簇。

IDG

鸢尾花萼片长度与萼片宽度(按物种)的关系,用朱莉娅的牛Ga作图。

此时,您应该准备继续自己的Julia学习之旅。 除了浏览JuliaBox上的其余教程笔记本以及我们讨论的三个绘图软件包的完整教程之外,您可能还喜欢观看Jane Herriman和其他人保存的网络广播 。 在与网络广播相同的页面上,您还将找到对许多在线教程文档,Julia资源和其他Julia视频的引用。

这个故事“ Julia教程:Julia语言入门”最初是由InfoWorld发布的 。

From: https://www.idginsiderpro.com/article/3294943/julia-tutorial-get-started-with-the-julia-language.html

Julia教程:Julia语言入门相关推荐

  1. c语言驱动程序开发基础教程,C 语言入门介绍

    C 语言入门介绍 适用于初学者和专业人士的C语言教程采用编程方法,可帮助您轻松理解C语言教程.我们的C教程通过程序解释了每个主题. C语言是由Dennis Ritchie开发的,用于创建与硬件设备(例 ...

  2. c语言标准函数库怎么建立教程,C语言入门教程-创建一个函数库

    描述 创建一个函数库 上述程序中的rand和bubble_sort函数很实用,很可能在您写其他程序时也能派上用场.为了能更方便地重复使用,您可以为它们创建一个实用工具函数库. 所有的函数库都包括两部分 ...

  3. python语言入门pdf-Python语言入门.pdf

    本书是国内第一本讲述Python语言的图书.Python是一种功能十分强大的面向对象编程语言,可以用于编写独立程序.快速脚本和复杂应用的原型.作为一种开源软件,Python可以自由获取,而且非常易学易 ...

  4. python语言入门-Python语言入门.pdf

    本书是国内第一本讲述Python语言的图书.Python是一种功能十分强大的面向对象编程语言,可以用于编写独立程序.快速脚本和复杂应用的原型.作为一种开源软件,Python可以自由获取,而且非常易学易 ...

  5. C语言入门-科协招新特别版

    C语言入门-科协招新特别版 计算机与信息安全学院 大学生科技协会 文章目录 C语言入门-科协招新特别版 你的第一行代码 c语言是什么 学习资源-书籍 学习资源-自学网站 学习资源-视频 学习资源-软件 ...

  6. 一个简单的Julia教程

    原文链接:点击打开链接 摘要: 当前版本 v0.5 因为在知乎上写的量子计算札记会涉及到使用Julia语言的数值模拟,同时随着中国的Julian越来越多,而之前几个在JuliaCN活跃的老司机最近一直 ...

  7. Julia教程7 Julia绘图

    在网易云课堂上直接搜索:Julia教程 ,就可以找到,教程的全名是:Julia教程 从入门到进阶 这是国内第一个免费的完整的Julia视频教程,非常适合Julia的入门.有兴趣的朋友可以去学习一下. ...

  8. VML编程之------VML语言入门《VML极道教程》原著:沐缘华

    <VML极道教程>原著:沐缘华 1章4节:VML语言入门 1:VML语言入门 - 极道学法 在我正式开始讲解.你正式开始学习VML语言以前,请务必遵循以下规则,可以达到最佳效果.极道学习方 ...

  9. c++ 结构体赋值_《零基础看得懂的C语言入门教程》—(十二)结构体是这么回事

    一.学习目标 了解C语言的结构体的使用方法 了解C语言结构体的结构的赋值 了解多种C语言结构体变量的赋值方法和取值方法 目录 <零基础看得懂的C语言入门教程>--(二)简单带你了解流程 & ...

最新文章

  1. HTML-通知公告Tips
  2. python+flask搭建CNN在线识别手写中文网站
  3. vuejs模仿实现一个电影分享类网站
  4. bat批处理文件的简单解密方法(乱码)
  5. ROS 教程之navigation: 用程序设定导航目标点
  6. numpy 下载安装
  7. 状态反馈控制与状态观测器设置以及利用LQR方法求取状态反馈矩阵
  8. uniapp小程序解压压缩包 (使用jszip)
  9. Logback使用总结
  10. matlab ctradon函数,Radon变换入门matlab CT原理
  11. 并联机构工作空间求解_结构计算软件—结构力学求解器
  12. OpenCvSharp函数:Dilate膨胀、GetStructuringElement获取形态操作的结构元素、Erode腐蚀
  13. 新底座、新产品、新方案,2022用友BIP技术大会三大数智化突破
  14. python脚本实现GNSS数据自动下载
  15. ArcMap-network analyst
  16. linux怎么打开pak文件怎么打开,如何在 Linux 上安装并启用 Flatpak 支持?
  17. python No handlers could be found for logger错误的解决
  18. 黑产揭秘:“打码平台”那点事儿
  19. 彩灯控制器课程设计vhdl_VHDL花样彩灯控制器的设计
  20. 读取注册表REG_DWORD类型的键值

热门文章

  1. (超详细)大数据Hadoop之HDFS组件
  2. 又一家云服务关停,这回是网易
  3. 怎么查看CAD图纸并更改图纸背景颜色?
  4. pii 400_为什么要加密所有个人身份信息(PII)
  5. python控制其它软件_python——实现ERP软件自动化操作
  6. 对8086的存储器扩展
  7. 严重: Servlet [login_fali] in web application [/StudyforJSP] threw load() exception javax.servl
  8. 超动感,百行Python代码制作动态气泡图
  9. 巴西龟饲养日志----黑壳虾吃的很欢实
  10. 小程序第三方微信授权登录的实现