【NumPy】array(配列)とmatrix(行列)の違い

この記事では、Pythonの数値計算ライブラリにおけるarrayメソッド(配列)とmatrixメソッド(行列)の違いをソースコード付きで解説します。

array(配列)とmatrix(行列)の違い

NumPyには、配列を生成するarrayメソッドの他に、行列生成用のmatrixメソッドがあります。
その違いは、算術演算子「*」を使ったときの動作です。

動作
arrayメソッド 生成した配列同士を「*」で掛けると要素同士の掛け算を求めます。
matrixメソッド 生成した行列同士を「*」で掛けると内積を求めます。

行列計算するならmatrixメソッドの方が扱いやすくなっています。

ソースコード(Python3+NumPy)

サンプルプログラムのソースコードです。

# -*- coding: utf-8 -*-
import numpy as np

A = np.matrix([[1, 3],
               [2, 2]])

B = np.matrix([[2, 2],
               [4, 1]])

C = np.array([[1, 3],
              [2, 2]])

D = np.array([[2, 2],
              [4, 1]])

# 内積
print('A*B=', A*B) # A*B= [[14  5]
                   #       [12  6]]

# 要素同士の掛け算
print('C*D=', C*D) # C*D= [[2 6]
                   #       [8 2]]

おすすめ記事

Python入門 サンプル集
NumPy入門 サンプル集

コメント