Julia 与育种数据分析

1. Julia是什么?

Julia是一个面向科学计算的高性能动态高级程序设计语言。其语法与其他科学计算语言相似。他们想要的是一个开源的软件,它要像C语言一般快速而有拥有如同Ruby的动态性;要具有Lisp般真正的同像性(Homoiconicity)而又有Matlab般熟悉的数学记号;要像Python般通用、像R般在统计分析上得心应手、像Perl般自然地处理字符串、像Matlab般具有强大的线性代数运算能力、像shell般胶水语言的能力,易于学习而又不让真正的黑客感到无聊;还有,它应该是交互式的,同时又是编译型的……

2. Julia相对于R和Python的优势

2.1. Julia很快

看一下Julia官网上的Benchmark,Julia综合速度,是R语言的42倍,是Python的15倍,是Java的3倍,是Fortran的1倍,和C语言速度不相上下。


2.2. 原生态支持并行运算和GPU开发

Julia是为为并行计算和分布式计算而设计,更适合于大数据的开发和运算。Python和R这方面先天不足。

2.3. Julia比R更像Python

Julia,R和Python被称为科学运算的三大语言,R语言是统计学家开发的,更偏向于统计分析,工程化不足。Python是简单工程化语言,但是数学运算速度慢。Julia相对于R语言,更工程化,而且更快,缺点是相关的包比较少。Julia相对于Python而言,更专注于科学运算。未来我相信,Julia会把R语言在数据科学的份额占掉一大半,同时会吞食Python在数据科学中的位置。

3. Julia的应用前景(来源:Julia中文官网)

3.1. 数据可视化和绘图

3.2. 组建, 部署或者嵌入代码

Julia可以让你开发用户界面,静态编译代码,甚至部署到网页服务器上。它还有强大的类似壳层(shell)的管理进程功能。它还提供类似Lisp的宏和其它元编程的能力。它还和其它语言友好相处,提供 C, Python, R, Java, 还有更多的语言之间的稳定的界面。

3.3. 数据科学

3.4. 规模化机器学习

Julia为机器学习和人工智能提供强大的深度学习工具 (Flux and Knet)。和论文中发表的数学公式一样, Julia的数学语法是表达算法的理想方式,通过 自动微分, GPU加速和terabytes数据支持来 建立可训练的模型。

Julia丰富的机器学习生态系统还提供监督式学习算法, 比如 回归, 决策树, 以及非监督式学习算法,比如 聚类 。您还可以找到 贝叶斯网络和 马尔科夫蒙特卡洛的外部库。

3.5. 丰富的科学计算生态环境

3.6. 并行和异构计算

Julia设计上就具有并行性, 提供各个层次的内置并行计算能力:矢量化(SIMD),多线程和 超级计算机上运行的分布式计算, Julia复杂的编译器可以生成各种硬件加速器的机器码,比如GPUs 和至强融核。编写在所有平台上都可以运行的通用代码, 不需要考虑底层的细节。

4. 学习Julia与弯道超车

一个朋友说,当你下决心做一件事情时,最难的部分已经过去了。

古人也说:“天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。”

关于很多事情,都有一个先发优势,遇到新的东西,积极拥抱,上士闻道,勤而行之。这才是应该有的态度。

人应该有舍我其谁的自信,而不是妄自菲薄,故步自封。

中国通过互联网革命,取得领头。育种通过Julia获得新生。

5. Julia学习笔记

为了更好的记录“学习Julia”这个Flag,我将公众号的菜单列了一个子目录“Julia”,记录自己的学习笔记,后期积累一段之后,放到知识星球里面。

莫说育种不高端

语言都用最前沿

弯道超车尤可期

点点滴滴把石穿

欢迎志同道合的小伙伴,多多交流Julia学习心得,笔记。

欢迎关注我的公众号:

Julia 与育种数据分析_第1张图片

你可能感兴趣的:(Julia 与育种数据分析)