介绍
在这个挑战中,你将练习使用 Python 中的 NumPy 模块。你将实现几个用于操作 NumPy 数组的常用函数,涵盖基础数学运算和数组变换。左侧的文件浏览器中已经为你创建好了必要的文件。
逐元素乘法
你的第一个任务是创建一个函数,实现两个 NumPy 数组的逐元素乘法。这意味着第一个数组中的每个元素都将与第二个数组中对应位置的元素相乘。
待办事项
- 完成
multiply_arrays.py文件中的multiply_arrays函数。
要求
- 函数名称必须为
multiply_arrays。 - 它必须接收两个 NumPy 数组
a和b作为输入。 - 它必须返回一个新的 NumPy 数组,该数组是
a和b逐元素相乘的结果。 - 输入数组将具有相同的形状(shape)。
示例
实现函数后,运行脚本查看结果:
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。 - 它必须接收两个 NumPy 数组
a和b作为输入。 - 它必须返回一个新的 NumPy 数组,该数组是
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。 - 它必须接收单个 NumPy 数组
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。 - 它必须接收一个 NumPy 数组
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。 - 它必须接收两个长度相同的一维 NumPy 数组
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 进行数据分析、机器学习和科学计算至关重要。



