科學(xué)計算語言Julia及MWORKS實踐 課件 10-集合容器_第1頁
科學(xué)計算語言Julia及MWORKS實踐 課件 10-集合容器_第2頁
科學(xué)計算語言Julia及MWORKS實踐 課件 10-集合容器_第3頁
科學(xué)計算語言Julia及MWORKS實踐 課件 10-集合容器_第4頁
科學(xué)計算語言Julia及MWORKS實踐 課件 10-集合容器_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

二、Julia語言基礎(chǔ)語法2.1基本數(shù)據(jù)類型2.2數(shù)組2.3集合容器2.4數(shù)學(xué)運算和初等函數(shù)2.5

流程控制2.3、集合容器集合容器:一種用于存儲和管理數(shù)據(jù)元素的數(shù)據(jù)結(jié)構(gòu),每個容器中的元素都可以通過特定的方式進(jìn)行訪問和操作。數(shù)組是Julia中信息和數(shù)據(jù)的基本表示形式,其中的元素可以是任意類型的。元組可用于存儲任意類型的數(shù)據(jù)。字典保存一系列映射關(guān)系,可通過關(guān)鍵字(Key)查找對象對應(yīng)的值。表格可更為方便地分析和處理數(shù)據(jù)。容器類型元素類型元素順序元素可變性形式元組(Tuple)任意類型有序不可變(a,b,c)字典(Dict)任意類型的鍵值對無序可變Dict(a

=>n,b=>m)表格(DataFrame)同種類型(互不相等)無序可變Set((a,b,c))數(shù)組(Array)相同類型(允許不同類型)有序可變[a,b,c]四種容器對比2.3、集合容器2.3.1元組元組:一種非常簡單的容器,是一種可以包含各種類型和大小數(shù)據(jù)的索引數(shù)據(jù)容器,通常是包含文本列表、文本和數(shù)字的組合或者不同大小的數(shù)值數(shù)組。函數(shù)描述tuple(xs...)構(gòu)造給定對象的元組ntuple創(chuàng)建一個長度為n的元組,計算每個元素為f(i)julia>t=(1,2,3,"text",(11,22,33))#可通過圓括號()直接構(gòu)建元組。注意:元組一旦構(gòu)建就不能修改(1,2,3,"text",(11,22,33))julia>t[1:4] #通過索引訪問元組(1,2,3,"text")julia>t=tuple(1,'a',pi)#通過tuple函數(shù)創(chuàng)建元組(1,'a',π)julia>t[2]'a':ASCII/UnicodeU+0061(categoryLl:Letter,lowercase)julia>ntuple(i->2*i,4) #構(gòu)建一個從1開始、步長為1、長度為4的元組,并計算每個元素的2倍(2,4,6,8)julia>ntuple(i->2*i,Val(4))#也可以通過使用Val(N)參數(shù)作為元組的長度(2,4,6,8)2.3、集合容器2.3.2字典字典:一種容器,將值映射到唯一鍵的對象。它包含的是鍵值對而不是元素值,每個鍵值對都是一個存儲單元,也被稱為映射,表示從一個鍵到一個值的映射關(guān)系。函數(shù)描述Dict字典(將值映射到唯一鍵的對象)haskey確定映射對象是否包含鍵keys返回映射對象的鍵values返回映射對象的值julia>D=Dict("Jan"=>327.2,"Feb"=>368.2,"Mar"=>197.6,"Apr"=>178.4)Dict{String,Float64}with4entries:"Mar"=>197.6"Apr"=>178.4"Jan"=>327.2"Feb"=>368.2julia>D["Mar"]#通過鍵來獲取對應(yīng)的值197.6julia>haskey(D,"Mar")#查看字典D是否含有鍵"Mar"truejulia>collect(keys(D))#查詢字典D中的所有鍵4-elementVector{String}:"Mar""Apr""Jan""Feb"julia>collect(values(D))#查詢字典D中的所有值4-elementVector{Float64}:197.6178.4327.2368.2構(gòu)建與訪問字典julia>C=Dict([("A",1),("B",2)])#可以通過輸入鍵值對元組來構(gòu)建字典Dict{String,Int64}with2entries:"B"=>2"A"=>1julia>#傳遞一系列成對參數(shù)來構(gòu)建字典,例如創(chuàng)建一個包含幾個月降雨量數(shù)據(jù)的字典(下接)2.3、集合容器2.3.2字典函數(shù)描述get獲取給定鍵存儲的值getkey若集合中有與鍵匹配的值則返回鍵,否則返回默認(rèn)值keytype返回包含鍵類型的數(shù)組valtype返回包含值類型的數(shù)組julia>d=Dict("a"=>1,"b"=>2,"c"=>3);julia>get(d,"a",3)#獲取字典中鍵"a"對應(yīng)的值1julia>getkey(d,"a",1)#獲取字典d中的鍵"a""a"獲取字典信息2.3、集合容器2.3.3表表:具有靈活性的有序集合對象類型,可以包含任何種類的對象,如數(shù)字、字符串甚至其他表等。函數(shù)描述DataFrame具有命名變量的表數(shù)組rename更改列名CSV.read讀取文件CSV.write輸出文件first表格第一行l(wèi)ast表格最后一行describe輸出表的摘要nrow表行數(shù)ncol表列數(shù)函數(shù)描述innerjoin將表從內(nèi)部連接outerjoin外部連接combine結(jié)合行對列轉(zhuǎn)換select對列轉(zhuǎn)換,行數(shù)不變select!復(fù)制新的表格對列轉(zhuǎn)換,行數(shù)不變transform對列進(jìn)行轉(zhuǎn)換,行數(shù)不變并保留原列transform!不復(fù)制新的表格對列進(jìn)行轉(zhuǎn)換joindataframe使用鍵變量按行合并兩個表2.3、集合容器2.3.3表例如:使用DataFrame函數(shù)創(chuàng)建表格。julia>DataFrame((a=[1,2],b=[3,4]))#直接對定義表格變量和數(shù)據(jù)2×2DataFrameRow│ab│Int64Int64─────┼──────────────1│132│24julia>DataFrame(A=1:3,B=5:7,fixed=1)3×3DataFrameRow│ABfixed│Int64Int64Int64─────┼─────────────────────1│1512│2613│371julia>DataFrame("a"=>1:2,"b"=>0)#使用字典(鍵值對)創(chuàng)建表格2×2DataFrameRow│ab│Int64Int64─────┼──────────────1│102│20例如:使用rename函數(shù)創(chuàng)建表格副本并更改列名。julia>df=DataFrame(i=1,x=2,y=3)1×3DataFrameRow│ixy│Int64Int64Int64─────┼─────────────────────1│123julia>rename(df,:i=>:A,:x=>:X)1×3DataFrameRow│AXy│Int64Int64Int64─────┼─────────────────────1│1232.3、集合容器2.3.3表例如:創(chuàng)建表格并獲得其指定信息。julia>df=DataFrame([123;456;789],:auto)#創(chuàng)建表格3×3DataFrameRow│x1x2x3│Int64Int64Int64─────┼─────────────────────1│1232│4563│789julia>describe(df) #讀取表格的摘要信息3×7DataFrameRow│variablemeanminmedianmaxnmissingeltype│SymbolFloat64Int64Float64Int64Int64DataType─────┼──────────────────────────────────────────────────────────────1│x14.014.070Int642│x25.025.080Int643│x36.036.090Int64julia>first(df)#讀取表格的第一行數(shù)據(jù)DataFrameRowRow│x1x2x3│Int64Int64Int64─────┼─────────────────────1│123julia>last(df)#讀取表格的最后一行數(shù)據(jù)ans=DataFrameRowRow│x1x2x3│Int64Int64Int64─────┼─────────────────────3│789julia>nrow(df)#求表的行數(shù)3julia>ncol(df)#求表的變量數(shù)32.3、集合容器2.3.4集合屬性與操作函數(shù)描述isempty判斷是否為空empty!刪除所有元素值in判斷元素是否在集合中unique數(shù)組中的唯一值ty_unique數(shù)組中的唯一值uniquetol容差內(nèi)的唯一值maximum返回集合的最大值minimum返回集合的最小值函數(shù)描述collect返回包含集合所有元素的向量union構(gòu)造集合的并集intersect構(gòu)造集合的交集setdiff構(gòu)造集合的差集ty_setdiff設(shè)置兩個數(shù)組的差集setxor設(shè)置兩個數(shù)組的異或symdiff構(gòu)造集合的對稱差上面介紹了元組、字典和表三種集合容器及相關(guān)的基本函數(shù)。除此之外,集合容器還有其他關(guān)于集合屬性與操作的函數(shù),見下表。2.3、集合容器通用操作2.3.4集合屬性與操作例如:創(chuàng)建一個集合,并對集合進(jìn)行指定操作。julia>A=Dict("a"=>1,"b"=>2,"c"=>3)Dict{String,Int64}with3entries:"c"=>3"b"=>2"a"=>1julia>TF=isempty(A) #判斷集合是否為空falsejulia>in("c"=>3,A) #判斷元素是否在集合中truejulia>empty!(A) #清空集合中的元素Dict{String,Int64}()julia>TF=isempty(A)true獲取操作例如:創(chuàng)建一個集合并對其進(jìn)行獲取操作。julia>A=[3,4,5,5,6,7,7,10,12];julia>unique(A) #求集合中的唯一值7-elementVector{Int64}:345671012julia>maximum(A) #求集合中的最大值12julia>minimum(A) #求集合中的最小值32.3、集合容器操作集合2.3.4集合屬性與操作例如:創(chuàng)建集合,并對其進(jìn)行運算。julia>A=[1,2,3,4,5];B=[3,4,5,6,7];C=[10,11];julia>union(A,B) #求A和B的并集7-elementVector{Int64}:1234567

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論