介绍
在这个挑战中,你将练习使用 Python 中的 NumPy 模块。你将实现几个用于操作 NumPy 数组的常用函数,涵盖基础数学运算和数组变换。左侧的文件浏览器中已经为你创建好了必要的文件。
这是一个「挑战」项目,它与「引导实验」不同。你需要尝试独立完成挑战任务,而不是按照实验步骤一步步学习。挑战通常具有一定的难度。如果你觉得困难,可以与 Labby 讨论或查看解决方案。历史数据显示,这是一个高级难度的挑战,通过率为 50%。该挑战在学习者中获得了 97% 的好评率。
在这个挑战中,你将练习使用 Python 中的 NumPy 模块。你将实现几个用于操作 NumPy 数组的常用函数,涵盖基础数学运算和数组变换。左侧的文件浏览器中已经为你创建好了必要的文件。
你的第一个任务是创建一个函数,实现两个 NumPy 数组的逐元素乘法。这意味着第一个数组中的每个元素都将与第二个数组中对应位置的元素相乘。
multiply_arrays.py 文件中的 multiply_arrays 函数。multiply_arrays。a 和 b 作为输入。a 和 b 逐元素相乘的结果。实现函数后,运行脚本查看结果:
python3 multiply_arrays.py
输出:
Input a: [1 2 3]
Input b: [4 5 6]
Element-wise multiplication result: [4 10 18]
Expected: [4 10 18]
接下来,你将实现矩阵乘法。与逐元素乘法不同,矩阵乘法遵循特定的线性代数规则,并要求两个矩阵的内部维度必须匹配。
matrix_multiply.py 文件中的 matrix_multiply 函数。matrix_multiply。a 和 b 作为输入。a 和 b 的矩阵乘积。实现函数后,运行脚本查看结果:
python3 matrix_multiply.py
输出:
Input matrix a:
[[1 2]
[3 4]]
Input matrix b:
[[5 6]
[7 8]]
Matrix multiplication result:
[[19 22]
[43 50]]
Expected:
[[19 22]
[43 50]]
在这一步中,你将编写一个函数来转置 NumPy 数组。转置数组会交换其行和列。
transpose_array.py 文件中的 transpose_array 函数。transpose_array。a 作为输入。实现函数后,运行脚本查看结果:
python3 transpose_array.py
输出:
Original array:
[[1 2 3]
[4 5 6]]
Transposed array:
[[1 4]
[2 5]
[3 6]]
Expected:
[[1 4]
[2 5]
[3 6]]
现在,你将创建一个函数来重塑(reshape)NumPy 数组。重塑可以在不改变数据的情况下改变数组的维度。总元素数量必须保持不变。
reshape_array.py 文件中的 reshape_array 函数。reshape_array。a 和一个元组 shape 作为输入。a 的数据,但具有由 shape 指定的新维度。实现函数后,运行脚本查看结果:
python3 reshape_array.py
输出:
Original array: [1 2 3 4 5 6]
New shape: (2, 3)
Reshaped array:
[[1 2 3]
[4 5 6]]
Expected:
[[1 2 3]
[4 5 6]]
欧几里得距离(Euclidean distance)是衡量两点之间直线距离的常用方法。你的任务是实现一个函数,计算两个一维 NumPy 数组之间的这种距离。
两个向量 a 和 b 之间的欧几里得距离公式为:
d(a, b) = \sqrt{\sum\_{i=1}^{n}(a_i - b_i)^2}
euclidean_distance.py 文件中的 euclidean_distance 函数。euclidean_distance。a 和 b。实现函数后,运行脚本查看结果:
python3 euclidean_distance.py
输出:
Point a: [1 2 3]
Point b: [4 5 6]
Euclidean distance: 5.196152422706632
Expected: 5.196152422706632
在这个挑战中,你练习了 NumPy 的基础操作。你实现了逐元素乘法、矩阵乘法、数组转置、重塑以及计算欧几里得距离的函数。这些技能对于使用 Python 进行数据分析、机器学习和科学计算至关重要。