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 感興趣的人加入到社群中,搞些東西出來。