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。
(本文写作时间较短,可能略水,望见谅)
领取专属 10元无门槛券
私享最新 技术干货