為什麼要學習 Julia

AhianZhang發表於2019-03-03

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)
複製程式碼
為什麼要學習 Julia

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")
複製程式碼
為什麼要學習 Julia

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
複製程式碼
為什麼要學習 Julia

此帖是一個普及帖,因為本人工作主要是 Java ,對於資料科學領域還不是很熟悉,如有錯誤希望指正,同時也希望各行各業對 Julia 感興趣的人加入到社群中,搞些東西出來。

相關文章