探索Julia part1 Julia初識

2021-10-08 03:44:07 字數 3427 閱讀 8394

學習筆記,僅供參考,有錯必糾

前言: 由於資料的快速增長,資料科學必須利用各種工具的強大功能來應對大資料的挑戰。因為資料科學的一大部分任務就是執行指令碼來處理規模龐大、結構複雜的資料集(通常被稱為「資料流」),所以一門高效能的程式語言對於資料科學來說不是奢侈品,而是必需品。

julia是一門設計用來進行技術計算的程式語言,它計算速度快,易於使用,並內建了許多資料處理工具。儘管它還處於初級階段,那些對它進行了充分測試的人們已經感受到了它的巨大潛力,並確信它在技術計算和資料科學領域內有很大的用武之地。

極其卓越的效能。julia在很多資料分析任務以及其他程式設計實踐中都表現出了令人難以置信的效能。它的表現可以和c語言媲美,c語言經常被用來作為衡量運算速度的標準。

強大的基礎庫。julia有乙個強大的基礎庫,它不需要其他平台,就可以進行所有的線性代數運算,這些運算是資料分析模組的必備元件。

支援多分派。julia實現了多分派機制,這使它可以使用同一種函式實現不同的過程,使函式更容易擴充套件,並可以對不同型別的輸入重複使用。

容易上手。特別是對於那些從python、r、matlab遷移過來的使用者,學習julia特別容易。

使用者友好的介面。不論是在本地還是雲上,julia的使用者介面都非常友好,在所有的流程中,使用者與julia的交流都非常順暢。julia還對所有的功能和資料型別提供了方便易用的幫助檔案。

與其他語言無縫對接。這些語言包括(但不限於)r, python和c,這使我們不需要進行完整的遷移,就可以使用現有的**庫。

開源。julia以及它的所有文件與教程都是開源的,非常易於獲取,詳盡而又全面。

開發者承諾。julia的開發者承諾會一直加強這門語言的效能,並對使用者提供盡可能的幫助。他們提供了大量的討論,組織年度會議,並提供諮詢服務。

自定義函式。julia的自定義函式可以和內建在基礎**中的函式一樣快速而簡潔。

並行能力。julia具有強大的並行能力,這使得在多核計算機和集群上的部署非常容易。

極大的靈活性。julia在開發新程式方面極其靈活,不論是程式設計新手,還是專家級使用者,julia適合各種程式設計水平的使用者,這個特性在其他語言中是很難得的。

下面還有長期支援版本:

我們首先配置julia的環境變數。

開啟【我的電腦】–> 【屬性】–>【高階系統配置】–>【環境變數】,在系統變數中新增julia_home,並在其中填入julia安裝路徑:

再將%julia_home%新增進path中,並在末尾新增\bin;

ok!我們在cmd中啟動julia:

現在,我們就來敲幾行**,讀取乙個csv檔案吧!

julia> pwd()

"c:\\users\\goatbishop"

julia> cd("c:\\users\\goatbishop\\desktop\\data")

julia> f = open("score.csv", "r")

iostream()

julia> lines = readlines(f);

julia> close(f)

julia> lines

11-element array:

",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()

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!

探索Julia part4 陣列

學習筆記,僅供參考,有錯必糾 使用julia 1.1.1 構造陣列 陣列是julia中的基礎資料型別,我們可以處理任意型別資料的集合,它與其他語言 比如r或者python 一樣陣列的索引位於方括號內 julia p 1,234567889,0.123,true,hello a julia p 1 1...

探索Julia part13 多分派

學習筆記,僅供參考,有錯必糾 參考自 julia資料科學應用 zacharias voulgaris 官方文件 使用julia 1.1.1 多分派的含義是,使用同一函式通過不同的方法處理不同型別的資料。比如,函式fun a int 與函式fun a string 可以是完全不同的處理過程,儘管這兩個...

Stylet框架探索(1)

一開始做mvvm的程式時,就知道有現成的框架,但個人並沒有使用。做著做著就發現mvvm模式有乙個最大的問題 量遠遠超出了不用mvvm模式做的程式。這些 感覺就是一些重複的 但又沒辦法省略。後來終於知道,原來框架就能解決這個問題。stylet是一款很輕量卻功能強大的wpf mvvm框架,了解了一下,感...