1.0可用的第三方库试玩

1.0刚发布一个星期,很多包还在更新,暂时用不了。以下的包是经过简单测试,确实可以在Julia 1.0上运行的。当然,建议大家可以用0.7过渡,不少包都已经兼容了0.7(但是不兼容1.0)。

PyCall ——兼容Python

可以无缝调用Python的库,很多第三库底层都依赖了PyCall。不过,我个人还是很建议日后Julia能内聚的,这样无端多了一层包装,难免速度下降。

不过有点bug,我调用了matplotlib后,好像关不掉弹窗,窗口卡死。没有必要,还是不要去调用Python,要用库最好用第三方包装过的。

看起来,效果还OK。

Plots

Julia的数据可视化还是有很多种选择的。被称为Julia最佳的绘图库,但是依赖的第三方包太多,目前还没能顺利更新,据说,作者也很无奈。

Plots可以选择多种后端渲染库,比如Python著名的mathplotlib.pyplot、GR等等,而不需要改代码(相当于多了中间层)。

不过,Plots的风格模型源于Matlab,比如、等等。

pyplots后端:

GR后端:

Flux——优雅的机器学习栈

首先,flux的官网很好看,例子也挺好玩的,大家可以去上面调戏一下机器学习加持的MNIST分类器(MNIST classifier)、车摆游戏(CartPole game)、围棋[迷你版,这个应该是算力原因](Go Game)、样例风格转换(Style Transfer demo)。

github上也提供了一个flux model zoo,额,不过有点少。不过包的完备性还是很好,包测试做得也很全面,检查完依赖,居然再下数据集……

Latexify ——公式转化成LaTeX语法

这个包和Jupyter(IJulia)更配哦。由于Julia原生支持LaTeX语法,这个包就是把公式转化成LaTeX语法,像Jupyter notebook的环境是支持LaTeX语法的(背后是mathjax,一个渲染LaTeX的JavaScript库)。

如果仅仅用在终端(控制台),是无法将公式可视化的。

DifferentialEquations——求解微分方程

1.0构建RandomNumbers依赖的时候出错,但总体下来构建还是成功的。微分方程在各类建模中还是非常重要的,不解释。

求解一波洛伦兹吸引子:

图是真的有点密。

Zygote——21世纪的自动微分

第一次微分需要计算表达式,比较慢,后面的计算会比较快。

注意,是,也就是角分符号,不是(单引号)。输入按Tab。

DataFrames ——统计必备的数据表

据说是R语言最先有,遗憾的是,我没用过R。DataFrames拥有行索引和列索引,可以通过索引标签对其中的数据进行存取。可以想想Excel,横轴是A、B、C…纵向是1、2、3…,可以用A1、B2这样来索引数据。对于数据分析、数据清洗相当有帮助。

值得期待的包

以下包,目前未能支持1.0,但是很值得期待:

Cxx:直接调用C++

Gadfly:Julia最佳绘图库(之一),可惜目前在0.7预编译失败(1.0就更不用说了)

当然,还有很多包,我没有测试过,比如物理的、各类神经物理,有机会再和大家介绍。最近一段世界Julia各种库都更新得相当频繁,建议初学者还是先回归基础。(预告:下次我们讨论一下Julia的宏和它的类型系统设计,我觉得Julia的类型系统是设计得相当不错。)

最后

我建议大家在0.7版本入手学习Julia,而不是1.0。对于0.7的弃用警告,下一次尽可能避免,这样可以比较好地过渡。Julia官方也是推荐从0.7入手学习,他们也觉得0.7这个版本号起的不太好,它应该作为1.0,而1.0应该作为1.1。

(本文写作时间较短,可能略水,望见谅)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180820G1X3RO00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券