學習筆記,僅供參考,有錯必糾
參考自: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)