Julia 数组学习笔记
数组是Julia编程语言中最基本的数据类型之一,用于以一维或多维方式存储和处理数据。本文将介绍Julia中如何创建、访问和操作数组。
创建数组
在Julia中,可以使用以下方法创建数组:
- 使用
[]
将元素括起来,用逗号分隔。 - 使用
zeros
或ones
函数创建一个所有元素均为0或1的数组。 - 使用
rand
或randn
函数创建一个随机数数组。 - 使用
collect
函数将其他类型的数据转换为数组。
比如,我们可以创建一个一维数组:
juliaCopy Codea = [1, 2, 3, 4, 5]
还可以创建一个二维数组:
juliaCopy Codeb = [1 2 3; 4 5 6; 7 8 9]
或者使用zeros
函数创建一个全为0的三维数组:
juliaCopy Codec = zeros(2, 3, 4)
访问数组元素
要访问数组中的元素,可以使用方括号索引。对于一个一维数组,可以使用一个数字索引,对于一个维数组,需要使用个数字索引。
比如,我们可以访问数组a
的第三个元素:
juliaCopy Codeprintln(a[3])
输出:
Copy Code3
也可以访问数组b
的第二行第三列元素:
juliaCopy Codeprintln(b[2, 3])
输出:
Copy Code6
操作数组
Julia提供了许多函数来操作数组。下面是一些常用的函数:
size
函数返回数组的维度。ndims
函数返回数组的维数。length
函数返回一维数组的长度,对于多维数组则返回第一个维度的长度。push!
函数向一维数组末尾添加元素。pop!
函数从一维数组末尾删除元素。reshape
函数重塑数组的形状。transpose
函数返回数组的转置。
比如,我们可以使用size
函数查看数组b
的大小:
juliaCopy Codeprintln(size(b))
输出:
Copy Code(3, 3)
也可以使用reshape
函数将数组a
重塑为一个的数组:
juliaCopy Coded = reshape(a, 5, 1)
或者使用transpose
函数将数组b
转置:
juliaCopy Codee = transpose(b)
实例
下面是一个实际应用数组的例子。假设我们有一个的数组,其中第一列是学生的成绩,第二列是学生的性别(0代表女,1代表男),我们想要计算男女学生的平均成绩并输出结果。
juliaCopy Code# 创建一个10x2的数组
grades = [84 1; 72 0; 91 1; 67 0; 78 1; 85 1; 93 0; 88 1; 74 0; 80 0]
# 计算男生的平均成绩
male_grades = mean(grades[grades[:, 2] .== 1, 1])
# 计算女生的平均成绩
female_grades = mean(grades[grades[:, 2] .== 0, 1])
# 输出结果
println("男生的平均成绩为:", male_grades)
println("女生的平均成绩为:", female_grades)
输出:
Copy Code男生的平均成绩为:86.2 女生的平均成绩为:76.2