Pythonで行列の積を計算する

PythonのNumPyの行列の積を計算してみます。

目次

  1. dotメソッドの使い方
  2. 行列の積を計算した例
  3. スカラーと行列の積を計算した例
  4. 1次元行列の積を計算した例

dotメソッドの使い方

行列の積を計算するにはdotメソッドを使います。

arr = numpy.dot(a, b, [out])
変数 内容
a array_like 第1の行列。
b array_like 第2の行列。
out ndarray 省略可。規定値はNone。
arr ndarray 第1の行列と第2の行列の積。

試してみるのが早いでしょう。

行列の積を計算した例

>>> import numpy as np
>>> a = np.array([[2,1],[1,0]])
>>> a
array([[2, 1],
       [1, 0]])
>>> b = np.array([[1,-1],[0,-2]])
>>> b
array([[ 1, -1],
       [ 0, -2]])

>>> np.dot(a,b)
array([[ 2, -4],
       [ 1, -1]])

>>> np.dot(b,a)
array([[ 1,  1],
       [-2,  0]])

行列の積なので、かける順番によって答えが変わります。

スカラーと行列の積を計算した例

では、片方の引数をスカラーにしたらどうなるでしょうか。

>>> import numpy as np
>>> a = np.array([[2,1],[1,0]])
>>> a
array([[2, 1],
       [1, 0]])

>>> np.dot(a,5)
array([[10,  5],
       [ 5,  0]])

>>> np.dot(5,a)
array([[10,  5],
       [ 5,  0]])

各要素にスカラー値がかかりました。

1次元行列の積を計算した例

では、1次元の行列同士だったらどうなるでしょうか。

>>> x = np.array([1,3])
>>> x
array([1, 3])

>>> y = np.array([5,7])
>>> y
array([5, 7])

>>> np.dot(x,y)
26

ベクトルの内積が計算されました。

広告

Pythonの数値計算カテゴリの投稿