学习笔记,仅供参考,有错必纠
参考自:Julia数据科学应用–Zacharias Voulgaris
前言: 由于数据的快速增长,数据科学必须利用各种工具的强大功能来应对大数据的挑战。因为数据科学的一大部分任务就是运行脚本来处理规模庞大、结构复杂的数据集(通常被称为“数据流”),所以一门高性能的编程语言对于数据科学来说不是奢侈品,而是必需品。
Julia初识
关于Julia
- 简介
Julia是一门设计用来进行技术计算的编程语言,它计算速度快,易于使用,并内置了许多数据处理工具。尽管它还处于初级阶段,那些对它进行了充分测试的人们已经感受到了它的巨大潜力,并确信它在技术计算和数据科学领域内有很大的用武之地。
- 优点
极其卓越的性能。Julia在很多数据分析任务以及其他编程实践中都表现出了令人难以置信的性能。它的表现可以和C语言媲美,C语言经常被用来作为衡量运算速度的标准。
强大的基础库。Julia有一个强大的基础库,它不需要其他平台,就可以进行所有的线性代数运算,这些运算是数据分析模块的必备组件。
支持多分派。Julia实现了多分派机制,这使它可以使用同一种函数实现不同的过程,使函数更容易扩展,并可以对不同类型的输入重复使用。
容易上手。特别是对于那些从Python、R、Matlab迁移过来的使用者,学习Julia特别容易。
用户友好的界面。不论是在本地还是云上,Julia的用户界面都非常友好,在所有的流程中,用户与Julia的交流都非常顺畅。Julia还对所有的功能和数据类型提供了方便易用的帮助文件。
与其他语言无缝对接。这些语言包括(但不限于)R, Python和C,这使我们不需要进行完整的迁移,就可以使用现有的代码库。
开源。Julia以及它的所有文档与教程都是开源的,非常易于获取,详尽而又全面。
开发者承诺。Julia的开发者承诺会一直加强这门语言的性能,并对使用者提供尽可能的帮助。他们提供了大量的讨论,组织年度会议,并提供咨询服务。
自定义函数。Julia的自定义函数可以和内置在基础代码中的函数一样快速而简洁。
并行能力。Julia具有强大的并行能力,这使得在多核计算机和集群上的部署非常容易。
极大的灵活性。Julia在开发新程序方面极其灵活,不论是编程新手,还是专家级用户,Julia适合各种编程水平的使用者,这个特性在其他语言中是很难得的。
Julia的安装与下载
- 下载(Windows)
进入Julia官网的下载页面 https://julialang.org/downloads/,这里我选择最新的一版进行下载:
下面还有长期支持版本:
下载好后安装Julia,这里,我就不演示了,因为我已经装好了。
配置路径
我们首先配置Julia的环境变量。
打开【我的电脑】–> 【属性】–>【高级系统配置】–>【环境变量】,在系统变量中添加JULIA_HOME
,并在其中填入Julia安装路径:
再将%JULIA_HOME%
添加进Path中,并在末尾添加\bin;
:
OK!
我们在cmd中启动Julia:
Very Well !
实战
现在,我们就来敲几行代码,读取一个csv文件吧!
- 获取及设置工作路径
julia> pwd()
"C:\\Users\\goatbishop"
julia> cd("C:\\Users\\goatbishop\\Desktop\\data")
- 读取csv文件
julia> f = open("score.csv", "r")
IOStream(<file score.csv>)
julia> lines = readlines(f);
julia> close(f)
julia> lines
11-element Array{String,1}:
",V1,V2,V3"
"2018,0.062398338,0.00096084,0.01760755"
"2017,0.055576782,0.002088041,0.015069804"
"2016,0.047872633,0.001896813,0.011671911"
"2015,0.041018385,0.002553234,0.00875396"
"2014,0.036894566,0.00348739,0.007299458"
"2013,0.029736679,0.004827159,0.008059326"
"2012,0.024377832,0.007115883,0.009060407"
"2011,0.017668678,0.009530017,0.007540419"
"2010,0.008402008,0.011293795,0.004592761"
"2009,0.000366857,0.009089361,0.001197243"
上面的代码会将我们的文本文件score.csv加载到IO对象f中,readlines则会将整个文件中的内容分割为字符串,并返回一个字符串数组作为输出,close则是关闭IO流。
我们利用下面这些代码,对文件一行一行的进行解析:
julia> f = open("score.csv", "r")
IOStream(<file score.csv>)
julia> for line in eachline(f)
println(line)
end
,V1,V2,V3
2018,0.062398338,0.00096084,0.01760755
2017,0.055576782,0.002088041,0.015069804
2016,0.047872633,0.001896813,0.011671911
2015,0.041018385,0.002553234,0.00875396
2014,0.036894566,0.00348739,0.007299458
2013,0.029736679,0.004827159,0.008059326
2012,0.024377832,0.007115883,0.009060407
2011,0.017668678,0.009530017,0.007540419
2010,0.008402008,0.011293795,0.004592761
2009,0.000366857,0.009089361,0.001197243
julia> close(f)
OK!