はじめに
このチャレンジでは、Python の NumPy モジュールを使用する練習を行います。基本的な数学演算や配列操作をカバーする、NumPy 配列を操作するためのいくつかの一般的な関数を実装します。必要なファイルは、左側のファイルエクスプローラーにあらかじめ用意されています。
要素ごとの乗算
最初のタスクは、2 つの NumPy 配列を要素ごとに乗算(アダマール積)する関数を作成することです。これは、最初の配列の各要素を、2 番目の配列の対応する要素と掛け合わせることを意味します。
TODO
multiply_arrays.pyファイル内のmultiply_arrays関数を完成させてください。
要件
- 関数名は
multiply_arraysとしてください。 - 入力として 2 つの NumPy 配列
aとbを受け取る必要があります。 aとbを要素ごとに乗算した結果である、新しい NumPy 配列を返す必要があります。- 入力される配列は同じ形状(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]
行列の積
次に、行列の積(行列乗算)を実装します。要素ごとの乗算とは異なり、行列の積は線形代数の特定の規則に従い、2 つの行列の内側の次元が一致している必要があります。
TODO
matrix_multiply.pyファイル内のmatrix_multiply関数を完成させてください。
要件
- 関数名は
matrix_multiplyとしてください。 - 入力として 2 つの NumPy 配列
aとbを受け取る必要があります。 aとbの行列積の結果である、新しい NumPy 配列を返す必要があります。- 入力される配列は、行列乗算が可能な形状を持っています。
例
関数を実装した後、スクリプトを実行して結果を確認してください:
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)する関数を作成します。配列を転置すると、その行と列が入れ替わります。
TODO
transpose_array.pyファイル内のtranspose_array関数を完成させてください。
要件
- 関数名は
transpose_arrayとしてください。 - 入力として 1 つの 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]]
配列の形状変更
次に、NumPy 配列の形状を変更(Reshape)する関数を作成します。形状変更は、データを変更することなく配列の次元を変更します。要素の総数は同じである必要があります。
TODO
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]]
ユークリッド距離の計算
ユークリッド距離は、2 点間の直線距離を測定する一般的な方法です。ここでのタスクは、2 つの 1 次元 NumPy 配列間のこの距離を計算する関数を実装することです。
2 つのベクトル a と b の間のユークリッド距離の公式は以下の通りです:
$$ d(a, b) = \sqrt{\sum_{i=1}^{n}(a_i - b_i)^2} $$
TODO
euclidean_distance.pyファイル内のeuclidean_distance関数を完成させてください。
要件
- 関数名は
euclidean_distanceとしてください。 - 同じ長さの 2 つの 1 次元 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 を使用したデータ分析、機械学習、および科学計算において不可欠なものです。



