dot関数【numpy】
より手軽に行列積(結果は次元をもつ)や内積(次元をもたないスカラ値という意味)を求めるための関数である。まず、
A : 2D array
x : 1D array
b : 0D array
とする。
code:p01.py
import numpy as np
A = np.array(1, 2, 3], 4, 5, 6, [7, 8, 9) b = np.array(2)
print(A.ndim, A.shape)
print(x.ndim, x.shape)
print(b.ndim, b.shape)
# 2 (3, 3)
# 1 (3,)
# 0 ()
2D同士
code:(続き)p01.py
y = np.dot(A, A)
print(y.ndim, y.shape)
print(y)
# 2 (3, 3)
2D と1D
code:(続き)p1.py
y1 = np.dot(A, x)
print(y1.ndim, y1.shape)
print(y1)
y2 = np.dot(x, A)
print(y2.ndim, y2.shape)
print(y2)
# 1 (3,)
# 1 (3,)
2Dと0D
code:(続き)p01.py
y = np.dot(A, b)
print(y.ndim, y.shape)
print(y)
# 2 (3, 3)
1D同士
結果は0D、内積が求まっている。
code:(続き)p01.py
y = np.dot(x, x)
print(y.ndim, y.shape)
print(y)
# 0 ()
# 14
1Dと0D
結果は1D、1D 配列の各要素のスカラ倍である。順序を入れ替えても同じ。
code:(続き)p01.py
y = np.dot(x, b)
print(y.ndim, y.shape)
print(y)
# 1 (3,)
0D同士
kekkaha
0D、スカラ同士の掛け算である。
code:(続き)p01.py
y = np.dot(x, x)
print(y.ndim, y.shape)
print(y)
# 0 ()
# 4