科学计算语言Julia及MWORKS实践 课件 10-集合容器_第1页
科学计算语言Julia及MWORKS实践 课件 10-集合容器_第2页
科学计算语言Julia及MWORKS实践 课件 10-集合容器_第3页
科学计算语言Julia及MWORKS实践 课件 10-集合容器_第4页
科学计算语言Julia及MWORKS实践 课件 10-集合容器_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

二、Julia语言基础语法2.1基本数据类型2.2数组2.3集合容器2.4数学运算和初等函数2.5

流程控制2.3、集合容器集合容器:一种用于存储和管理数据元素的数据结构,每个容器中的元素都可以通过特定的方式进行访问和操作。数组是Julia中信息和数据的基本表示形式,其中的元素可以是任意类型的。元组可用于存储任意类型的数据。字典保存一系列映射关系,可通过关键字(Key)查找对象对应的值。表格可更为方便地分析和处理数据。容器类型元素类型元素顺序元素可变性形式元组(Tuple)任意类型有序不可变(a,b,c)字典(Dict)任意类型的键值对无序可变Dict(a

=>n,b=>m)表格(DataFrame)同种类型(互不相等)无序可变Set((a,b,c))数组(Array)相同类型(允许不同类型)有序可变[a,b,c]四种容器对比2.3、集合容器2.3.1元组元组:一种非常简单的容器,是一种可以包含各种类型和大小数据的索引数据容器,通常是包含文本列表、文本和数字的组合或者不同大小的数值数组。函数描述tuple(xs...)构造给定对象的元组ntuple创建一个长度为n的元组,计算每个元素为f(i)julia>t=(1,2,3,"text",(11,22,33))#可通过圆括号()直接构建元组。注意:元组一旦构建就不能修改(1,2,3,"text",(11,22,33))julia>t[1:4] #通过索引访问元组(1,2,3,"text")julia>t=tuple(1,'a',pi)#通过tuple函数创建元组(1,'a',π)julia>t[2]'a':ASCII/UnicodeU+0061(categoryLl:Letter,lowercase)julia>ntuple(i->2*i,4) #构建一个从1开始、步长为1、长度为4的元组,并计算每个元素的2倍(2,4,6,8)julia>ntuple(i->2*i,Val(4))#也可以通过使用Val(N)参数作为元组的长度(2,4,6,8)2.3、集合容器2.3.2字典字典:一种容器,将值映射到唯一键的对象。它包含的是键值对而不是元素值,每个键值对都是一个存储单元,也被称为映射,表示从一个键到一个值的映射关系。函数描述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"]#通过键来获取对应的值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构建与访问字典julia>C=Dict([("A",1),("B",2)])#可以通过输入键值对元组来构建字典Dict{String,Int64}with2entries:"B"=>2"A"=>1julia>#传递一系列成对参数来构建字典,例如创建一个包含几个月降雨量数据的字典(下接)2.3、集合容器2.3.2字典函数描述get获取给定键存储的值getkey若集合中有与键匹配的值则返回键,否则返回默认值keytype返回包含键类型的数组valtype返回包含值类型的数组julia>d=Dict("a"=>1,"b"=>2,"c"=>3);julia>get(d,"a",3)#获取字典中键"a"对应的值1julia>getkey(d,"a",1)#获取字典d中的键"a""a"获取字典信息2.3、集合容器2.3.3表表:具有灵活性的有序集合对象类型,可以包含任何种类的对象,如数字、字符串甚至其他表等。函数描述DataFrame具有命名变量的表数组rename更改列名CSV.read读取文件CSV.write输出文件first表格第一行last表格最后一行describe输出表的摘要nrow表行数ncol表列数函数描述innerjoin将表从内部连接outerjoin外部连接combine结合行对列转换select对列转换,行数不变select!复制新的表格对列转换,行数不变transform对列进行转换,行数不变并保留原列transform!不复制新的表格对列进行转换joindataframe使用键变量按行合并两个表2.3、集合容器2.3.3表例如:使用DataFrame函数创建表格。julia>DataFrame((a=[1,2],b=[3,4]))#直接对定义表格变量和数据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)#使用字典(键值对)创建表格2×2DataFrameRow│ab│Int64Int64─────┼──────────────1│102│20例如:使用rename函数创建表格副本并更改列名。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表例如:创建表格并获得其指定信息。julia>df=DataFrame([123;456;789],:auto)#创建表格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)#读取表格的第一行数据DataFrameRowRow│x1x2x3│Int64Int64Int64─────┼─────────────────────1│123julia>last(df)#读取表格的最后一行数据ans=DataFrameRowRow│x1x2x3│Int64Int64Int64─────┼─────────────────────3│789julia>nrow(df)#求表的行数3julia>ncol(df)#求表的变量数32.3、集合容器2.3.4集合属性与操作函数描述isempty判断是否为空empty!删除所有元素值in判断元素是否在集合中unique数组中的唯一值ty_unique数组中的唯一值uniquetol容差内的唯一值maximum返回集合的最大值minimum返回集合的最小值函数描述collect返回包含集合所有元素的向量union构造集合的并集intersect构造集合的交集setdiff构造集合的差集ty_setdiff设置两个数组的差集setxor设置两个数组的异或symdiff构造集合的对称差上面介绍了元组、字典和表三种集合容器及相关的基本函数。除此之外,集合容器还有其他关于集合属性与操作的函数,见下表。2.3、集合容器通用操作2.3.4集合属性与操作例如:创建一个集合,并对集合进行指定操作。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获取操作例如:创建一个集合并对其进行获取操作。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集合属性与操作例如:创建集合,并对其进行运算。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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论