Julia 是随机器学习而兴起的语言
我们想要的是一个自由开源的语言,并且它同时拥有C的速度和Ruby的动态性;我们想要一个具有同像性(可以将语言的脚本本身当作数据进行处理)的语言, 它有着真正的和lisp一样的宏,但是却像Matlab一样有着显然的,类似于数学表达式的标记;我们想要一个既可以像Python一样作为通用编程语言的工具, 又可以像R那样适用于统计分析,能像Perl那样自然地处理字符串,能像Matlab那样给力地处理矩阵运算,它还要能像shell一样作为胶水将各种程序粘 合在一起;我们想要一个简单易学的语言,同时它还能让最苛刻的魔法师们(hackers)开心。我们希望它是交互式的,但我们也希望它能被编译。
我并不是数据科学领域的,但喜欢研究一些比较有趣的内容,加入并熟悉他们,Julia 从 0.7 直接跳到了 1.0 , 目前有很多库和插件都不支持,但终于有一个 1.0 的版本了。个人觉得 julia 这门语言将会成为经济领域和科学领域的一个趁手的工具,就像 Golang 是云计算时代的语言,毕竟语言的诞生都是为了处理各种数据和问题,当然,适合自己的才是最好的。
Julia 在国内属于刚起步的状态,生态和社区都不完善,但是时间能解决一切,在技术行业如果靠一门技术到老那是非常危险的,什么 Python 是最好的,这就像坐井观天,不跳出去,永远也不知道外面的世界有多大。
在遇到问题后推荐首先使用 Google 来寻找答案,找不到的话可以去 Julia 中文社区 或者 StackOverFlow 上提问,大牛很多,不推荐百度。
使用时推荐 Julia Pro ,集成了 notebook 和一些常用的类库。 下面是一些常用的演示,来源于网络,但更新了一些函数的用法:
in
[(i,j) for i in 1:7 , j in 1:7]
复制代码
out:
7×7 Array{Tuple{Int64,Int64},2}:
(1, 1) (1, 2) (1, 3) (1, 4) (1, 5) (1, 6) (1, 7)
(2, 1) (2, 2) (2, 3) (2, 4) (2, 5) (2, 6) (2, 7)
(3, 1) (3, 2) (3, 3) (3, 4) (3, 5) (3, 6) (3, 7)
(4, 1) (4, 2) (4, 3) (4, 4) (4, 5) (4, 6) (4, 7)
(5, 1) (5, 2) (5, 3) (5, 4) (5, 5) (5, 6) (5, 7)
(6, 1) (6, 2) (6, 3) (6, 4) (6, 5) (6, 6) (6, 7)
(7, 1) (7, 2) (7, 3) (7, 4) (7, 5) (7, 6) (7, 7)
复制代码
using PyPlot
n = 100
u = linspace(0,2*π,n);
v = linspace(0,π,n);
x = cos.(u) * sin.(v)';
y = sin.(u) * sin.(v)';
z = ones.(n) * cos.(v)';
# The rstride and cstride arguments default to 10
surf(x,y,z, rstride=4, cstride=4)
复制代码
using PyPlot
x = linspace.(0,2*pi,1000); y = sin.(3*x + 4*cos.(2*x));
PyPlot.plot(x, y, color="red", linewidth=2.0, linestyle="--")
title("A sinusoidally modulated sinusoid")
复制代码
using PyPlot
PyPlot.ion()
fig = figure()
ax = fig[:add_subplot](111)
img = ax[:imshow](rand(50,50))
#PyPlot.show()
# draw some data in loop
for i in 1:10
# wait for a second
sleep(1)
# replace the image contents
img[:set_array](rand(50,50))
# redraw the figure
fig[:canvas][:draw]
end
复制代码
此帖是一个普及帖,因为本人工作主要是 Java ,对于数据科学领域还不是很熟悉,如有错误希望指正,同时也希望各行各业对 Julia 感兴趣的人加入到社区中,搞些东西出来。