现在的编程措辞有几十种,有些是通用的,有些则专注于某个领域,但每种措辞都号称比其他措辞更精良。
最强大的措辞(能够快速实行繁芜运算的措辞)学习起来该当很难(要想节制就更难了),它们的用户仅局限于那些对编程具有天赋的“硬核”程序员。
年夜志勃勃的数据科学家不得不面对这样一种前景:花费大量韶光和精力学习了一门措辞,却对他们的事情帮助甚微,写下了一行又一行繁芜的代码,却实现不了一种可用的算法。

你所不理解的Julia_措辞_数据 文字写作

“即插即用”的编程措辞是其余一种情形,它们将所有的编程繁芜性都进行了精心的封装。
那些最单调乏味的(一样平常也是运用最广泛的)算法都被预先包装好了,供用户方便地利用,险些不须要学习过程。
这些措辞的问题是,它们的速率会很慢,而且对内存和运算能力有很苛刻的哀求。
数据科学家们又面临了一种与前面相反的困境:措辞学习没有陡峭的学习曲线,这是个优点,但想用这些措辞来完成任务,却困难重重。

Julia正是位于这两种极度情形中间的一种措辞,它最大程度地综合了上面两类措辞的优点。
实在,它便是一门设计用来进行技能打算的编程措辞,它打算速率快,易于利用,并内置了许多数据处理工具。
只管它还处于低级阶段,那些对它进行了充分测试的人们已经感想熏染到了它的巨大潜力,并确信它在技能打算和数据科学领域内有很大的用武之地。

以下一些特点使Julia在浩瀚编程措辞中脱颖而出。

极其卓越的性能。
Julia在很多数据剖析任务以及其他编程实践中都表现出了令人难以置信的性能。
它的表现可以和C措辞媲美,C措辞常常被用来作为衡量运算速率的标准。

强大的根本库。
Julia有一个强大的根本库,它不须要其他平台,就可以进行所有的线性代数运算,这些运算是数据剖析模块的必备组件。

支持多分派。
Julia实现了多分派机制,这使它可以利用同一种函数实现不同的过程,使函数更随意马虎扩展,并可以对不同类型的输入重复利用。

随意马虎上手。
特殊是对付那些从Python、R、Matlab或Octave迁移过来的利用者,学习Julia特殊随意马虎。

用户友好的界面。
不论是在本地还是云上,Julia的用户界面都非常友好,在所有的流程中,用户与Julia的互换都非常顺畅。
Julia还对所有的功能和数据类型供应了方便易用的帮助文件。

与其他措辞无缝对接。
这些措辞包括(但不限于)R、Python和C。
这使你不须要进行完全的迁移,就可以利用现有的代码库。

开源。
Julia以及它的所有文档与教程都是开源的,非常易于获取,详尽而又全面。

开拓者承诺。
Julia的开拓者承诺会一贯加强这门措辞的性能,并对利用者供应尽可能的帮助。
他们供应了大量的谈论,组织年度会议,并供应咨询做事。

自定义函数。
Julia的自定义函数可以和内置在根本代码中的函数一样快速而简洁。

并行能力。
Julia具有强大的并行能力,这使得在多核打算机和集群上的支配非常随意马虎。

极大的灵巧性。
Julia在开拓新程序方面极其灵巧,不论是编程新手,还是专家级用户,Julia适宜各种编程水平的利用者,这个特性在其他措辞中是很难得的。

在学习和利用Julia的过程中,你肯定会创造它的更多优点,尤其是在数据科学方面。

1.1 Julia如何提高数据科学水平

“数据科学”是个相称暗昧的名词,自从它成为科学领域一门学科后,就具有很多不同的意义。
在本书中,我们这样来定义它:数据科学通过各种统计学和机器学习的技能与方法,将数据转换为有用的信息或知识。

由于数据的快速增长,数据科学必须利用各种工具的强大功能来应对大数据的寻衅。
由于数据科学的一大部分任务便是运行脚本来处理规模弘大、构造繁芜的数据集(常日被称为“数据流”),以是一门高性能的编程措辞对付数据科学来说不是奢侈品,而是必需品。

考虑一下某种特定的数据处理算法,它通过传统措辞实现,须要运行几个小时。
那么算法性能的适度提高就可以对数据处理过程的整体速率造成相称大的影响。
作为一门新措辞,Julia做的便是这样一件事情,这使它成为了数据科学运用的空想工具,既适宜履历丰富的数据科学家,也适用于入门者。

1.1.1 数据科学事情流程

人们认为数据科学是由多个环节组成的一个流程,每个环节都与手头的数据和剖析目标密切干系。
很多时候,这个目标是实现一个仪表盘或某种智能可视化结果(常日是可交互的),这常日被称为“数据产品”。

数据科学包括从真实天下(比如HDFS系统中的数据流,CSV文件中的数据集,或者关系数据库中的数据)中获取数据,对数据进行处理并得到有用的信息,以及将信息以一种精髓精辟和可操作的形式返回到真实天下中。
终极结果常日是数据产品的形式,但也不是必须的。
举例来说,你可能被哀求在公司的内部数据上面运用数据科学,但只要将结果以可视化的办法与公司管理者共享就可以了。

看一个小公司的例子,这个公司正在对博客订阅者进行问卷调查,从而进行数据驱动的市场研究。
这个数据科学过程包括以下5个步骤。

1.从营销团队获取数据。

2.进行数据准备,将数据转换成可以用于预测剖析的形式。

3.对数据进行探索性剖析,分辨出是否某些人更方向于购买某些特定产品。

4.对事情进行规范化,使全体事情过程达到资源有效和无偏差。

5.开拓模型,深入研究公司客户对哪些产品最感兴趣,以及他们期望为这些产品付多少钱。

我们会在第5章中对这个过程进行更详细的先容。
图1.1是数据科学过程的

一幅完全图景,个中也包含了Julia措辞的适用范围。
我们常日用三个堆叠起来的圆形表示Julia,在图中,这个符号指示出了Julia的用武之地。
很明显,除了数据产品开拓和数据获取,Julia险些可以用于数据科学过程的各个阶段。

想想看,Julia可以在多大程度上简化你的事情流程?你不须要从其他平台上抓取代码来修补自己的流程,从而造成令人困扰的瓶颈。
而且,只要你在Julia中调试通过了代码,也没有必要将其转换为像C++或Java之类的措辞,由于这样做不会有性能上的提高。
这一点非常主要,在用R和Matlab之类的措辞构建原型时,这种转换是个必需的步骤。

1.1.2 Julia被数据科学社区接管的过程

你可能心生疑虑:“既然Julia是这么完美的一种措辞,为什么还没有被数据科学社区广泛接管呢?”我们完备可以期待,Julia这种功能丰富的措辞崭露锋芒,未来会像R和Python一样,在数据科学领域内霸占一席之地。

只管Julia对付任何类型的数据处理项目来说都是一种明智的选择,但是与其他更成熟的措辞比较,它供应的扩展包还不足多(只管随着用户数量的增加,可用的Julia扩展包的数量也在平稳地增长)。
紧张缘故原由是Julia是一门年轻的措辞,而且随着韶光的推移,必定还会发展变革。

更主要的是,数据科学从业者与学习者还没有确信Julia可以像Python和R那样随意马虎地学习和节制。
这两种措辞都以具有弘大的用户社区为傲,用户社区使编程不仅大略,而且具有乐趣。
想想Python Challenge吧:一系列编程任务,使学习Python就像是在游戏里面闯关。

毫无疑问,总有一天Julia也会发展出同等规模的粉丝圈,但现在它的影响力还不足,特殊是在数据科学从业者中间。
只管Julia潜力巨大,但很多人创造,在Julia中写出清晰的代码并将初始程序调试通过是一件相称困难的事情。
对新手来说,全体开拓过程令人望而生畏,乃至半途而废。

预先开拓好的程序常日以“库”或“包”的形式来供应。
只管Julia供应了足够多的包来完成数据科学任务,但是还短缺一些算法,须要自己编程实现。
在网页发展的低级阶段,HTML和CSS也面临了同样的问题,但是当它们的深奥技能逐渐成为主流,形势就一片大好了。
对Julia的先驱者来说,可能会发生同样的事情。
纵然你没有积极地参与Julia编程社区,但在对这门措辞逐渐闇练的过程中,你也肯定会受益匪浅。
而且,当社区不断增长完善时,Julia用户完成任务会越来越随意马虎,特殊是对先驱者来说。

1.2 Julia 扩展

只管现在能够扩展Julia功能的库文件(常日称为“包”)还比较少,但是Julia资源正在不断地增加。
从2015年初到2016年中,Julia包的数量翻了一番,而且还看不出减慢的迹象。
由于Julia的用户多数是从事高等打算的,以是这些包都是用来知足他们的需求的。
包的更新就更加频繁了,这使得这门措辞的鲁棒性不断提高。
末了,由于Julia社区规模较小,并且联系紧密,以是很少有重复开拓。

1.2.1 包的质量

“现有的包的质量如何?”你可能会问这个问题。
由于开拓这些包的用户大多履历丰富,他们会尽力写出高质量的代码,从GitHub用户褒奖的“星星”就可以反响出这一点。
值得把稳的是,从2015年末到我写完这本书为止,各种Julia包得到的星星数量增加了50%。
很明显,在这个著名的程序仓库中,上传的Julia代码受到了越来越多的青睐。

很多GitHub中的包(不管是什么措辞)都有一个有趣的特点,便是通过测试来建立程序的完全性和覆盖率等指标,这样在你开始利用这些程序之前,就可以清楚地理解它们的可靠性。
对付最新版本的Julia(0.4),测试结果相称动听:在所有610个包中,63%的包通过了所有测试,只有11%的包没有通过测试(别的的包还没有进行测试,或者是不可测试的)。

1.2.2 找到新的包

如果想理解Julia包开拓情形的最新信息,你可以访问http://pkg.julialang. org/pulse.html 。
此外,在本书的末端,我们给出了一个参考列表,个中包括了数据科学运用中最常用的包。
值得把稳的是,只管Julia不像其他措辞那样有那么多类型的扩展包,但是对数据剖析而言,Julia的扩展包完备够用了。
本文的紧张内容便是阐述这些扩展包的事情事理,以及如何利用它们来办理艰巨的数据科学问题。

本文摘自《Julia数据科学运用》

如果你正在阅读本书(并操持按照书中的示例进行练习),那么你至少该当对数据科学领域有所阅读。
我假设你具有基本的编程履历,并对数据构造、GitHub仓库和数据剖析过程有所理解。
如果你曾经独立实现过某种算法,完全地开拓过某种程序,或利用过GitHub上的现成程序办理过实际问题(哪怕是个大略的问题),那么你就有了一个良好的开端。

最主要的是,我希望你有一个脚踏实地的态度,在碰着问题时,可以闇练利用各种技能文档和论坛来寻求办理方案。
末了,你必须对学习这门措辞有种发自内心的兴趣,并将其与你的数据剖析项目紧密地结合起来。

读到现在,你该当知道学习本书的最大收益便是:在节制用于数据科学的Julia措辞方面取得显著进步。
你可能不会成为Julia开拓专家,但你学到的知识足以使你看懂新的脚本,并完备可以利用Julia完成一些有趣的数据剖析项目。
个中的一些数据工程任务,如果利用其他编程措辞来完成的话,会不厌其烦。

本书会提出一系列在数据科学流程中常见的、有代表性的实际问题,并辅导你利用Julia去办理这些问题。
你不须要去重新发明轮子,由于可以利用现有的内置功能和扩展包办理绝大多数问题。
而且,你还可以利用几个真实数据集进行练习,以别人的成功履历为辅导,不用在盲人摸象的情形下不断重复试错的过程。

本书将要先容的内容如下。

1.可以用于Julia开拓的几种现成的IDE(集成开拓***,以及如何利用文本编辑器来创建和编辑Julia脚本。

2.通过几个相对大略的示例程序,先容Julia措辞特性(主程序构造和函数)。

3.利用Julia完成数据工程任务的几种不同办法,包括数据的导入、洗濯、格式化和存储,以及如何进行数据预处理。

4.数据可视化,以及几种大略但很强大的用于数据探索目的的统计方法。

5.通过各种技能去除不必要的变量,实现数据降维。
在这部分内容中,我们还将涉及特色评估技能。

6.机器学习方法,包括无监督式学习方法(各种聚类技能)和监督式学习方法(决策树、随机森林、基本神经网络、回归树、极限学习机等)。

7.图剖析方法,研究如何在现有数据上运用目前最盛行的算法,并确定不同实体之间的联系。

除了上面这些内容,我们会连续谈论数据科学中的一些基本知识,这样,在深入研讨数据科学的各个环节之前,你会对数据科学的整体流程有一个清晰的认识。
而且,书中的所有资料都带有补充信息,这对Julia初学者是非常主要的,补充信息先容了将Julia安装到打算机上的方法,以及学习这门措辞的一些资源。

在本书中,你将会打仗到很多示例和问题,它们可以加强你对每章内容的理解和节制。
如果你确信已经节制了书中的大部分知识,就可以编写自己的程序,充分发挥这门非凡编程措辞的巨大威力。

本书会辅导你如何以并行的办法运行Julia(如果你不能利用集群,在单机上也可以)。
对付那些勇气十足、希望接管寻衅的人,在末了一章可以利用本书中学到的所有知识和技能,利用Julia从零开始构建一项完全的数据科学运用。
你准备好了吗?

延伸推举

2018年1月重磅新书

小学生开始学Python,最靠近AI的编程措辞:安利一波Python书单

政策升温:大家都在学大数据,一大波好书推举

一本基于Python措辞的Selenium自动化测试书

8本新书,送出一本你喜好的

AI经典书单| 入门人工智能该读哪些书?

点击关键词阅读更多新书:

Python|机器学习|Kotlin|Java|移动开拓|机器人|有奖活动|Web前端|书单

在“异步图书”后台回答“关注”,即可免费得到2000门在线***课程;推举朋友关注根据提示获取赠书链接,免费得异步图书一本。
赶紧来参加哦!

点击阅读原文,查看本书更多信息

扫一扫上方二维码,回答“关注”参与活动!