Julia 数组学习笔记

数组是Julia编程语言中最基本的数据类型之一,用于以一维或多维方式存储和处理数据。本文将介绍Julia中如何创建、访问和操作数组。

创建数组

在Julia中,可以使用以下方法创建数组:

  1. 使用[]将元素括起来,用逗号分隔。
  2. 使用zerosones函数创建一个所有元素均为0或1的数组。
  3. 使用randrandn函数创建一个随机数数组。
  4. 使用collect函数将其他类型的数据转换为数组。

比如,我们可以创建一个一维数组:

juliaCopy Code
a = [1, 2, 3, 4, 5]

还可以创建一个二维数组:

juliaCopy Code
b = [1 2 3; 4 5 6; 7 8 9]

或者使用zeros函数创建一个全为0的三维数组:

juliaCopy Code
c = zeros(2, 3, 4)

访问数组元素

要访问数组中的元素,可以使用方括号索引。对于一个一维数组,可以使用一个数字索引,对于一个nn维数组,需要使用nn个数字索引。

比如,我们可以访问数组a的第三个元素:

juliaCopy Code
println(a[3])

输出:

Copy Code
3

也可以访问数组b的第二行第三列元素:

juliaCopy Code
println(b[2, 3])

输出:

Copy Code
6

操作数组

Julia提供了许多函数来操作数组。下面是一些常用的函数:

  1. size函数返回数组的维度。
  2. ndims函数返回数组的维数。
  3. length函数返回一维数组的长度,对于多维数组则返回第一个维度的长度。
  4. push!函数向一维数组末尾添加元素。
  5. pop!函数从一维数组末尾删除元素。
  6. reshape函数重塑数组的形状。
  7. transpose函数返回数组的转置。

比如,我们可以使用size函数查看数组b的大小:

juliaCopy Code
println(size(b))

输出:

Copy Code
(3, 3)

也可以使用reshape函数将数组a重塑为一个5×15 \times 1的数组:

juliaCopy Code
d = reshape(a, 5, 1)

或者使用transpose函数将数组b转置:

juliaCopy Code
e = transpose(b)

实例

下面是一个实际应用数组的例子。假设我们有一个10×210 \times 2的数组,其中第一列是学生的成绩,第二列是学生的性别(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