Numpy のドット関数

Beginner

はじめに

この実験では、主に 2 つのベクトルの内積を計算するために使用される Numpy ライブラリのdot()関数を調べます。また、この関数が 2 次元配列を行列として扱い、行列積を行う方法も見てみます。

VM のヒント

VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。

時々、Jupyter Notebook が読み込み完了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証は自動化できません。

学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

numpy.dot() の構文を理解する

dot()関数を使用するために必要な構文は以下の通りです。

numpy.dot(a, b, out=None)

ここで:

  • a は最初のパラメータです。「a」が複素数の場合、その複素共役が内積の計算に使用されます。
  • b は 2 番目のパラメータです。「b」が複素数の場合、その複素共役が内積の計算に使用されます。
  • out は出力引数です。使用しない場合、戻り値と同じ種類でなければなりません。それ以外の場合、C 連続でなければならず、そのdtypedot(a, b)の戻り値のdtypeと同じでなければなりません。

スカラーと 1 次元配列の内積を計算する

このステップでは、dot()関数を使ってスカラーと 1 次元配列の内積を計算します。

import numpy as np

## スカラー値の内積を計算する
a = np.dot(8, 4)
print("上記のスカラー値の内積は:")
print(a)

## 2 つの 1 次元配列の内積を計算する
vect_a = 4 + 3j
vect_b = 8 + 5j

dot_product = np.dot(vect_a, vect_b)
print("2 つの 1 次元配列の内積は:")
print(dot_product)

2 次元配列を使った行列積を行う

このステップでは、dot()関数を使って 2 次元配列を使って行列積を行います。

import numpy as np

a = np.array([[50,100],[12,13]])
print("行列 a は:")
print(a)

b = np.array([[10,20],[12,21]])
print("行列 b は:")
print(b)

dot = np.dot(a, b)
print("行列 a と b の内積は:")
print(dot)

エラーハンドリング

このステップでは、aの最後の次元がbの 2 番目の最後の次元と同じサイズでない場合に発生するValueErrorを調べます。

import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[7, 8], [9, 10], [11, 12], [13, 14]])

## エラーハンドリング
error = np.dot(a, b)
print(error)

まとめ

この実験では、Numpy ライブラリのdot()関数について学びました。この関数の構文を使ってどのように使うかを学び、コード例を使って関数が返す値を説明しました。また、関数のエラーハンドリングについても調べました。