長さが n の1次元配列の場合、(1, n) なのか、(n, 1) なのか区別ができないので、行列積を計算する場合、計算前に reshape() で形状を2次元配列に変更する必要があります。
質問の例の場合、右の被演算子が長さが2の1次元配列ならば、reshape(2, 1) で 2x1 の行列に変更しておく必要があります。
どちらも2次元配列の場合
python
1import numpy as np
2
3# 3x2
4a = np.array([[0, 1],
5 [2, 3],
6 [4, 5]])
7# 2x1
8b = np.array([[2],
9 [3]])
10# 3x1
11c = a @ b # @ は行列積の演算子 a.dot(b) と同じ意味
12print(c)
13# [[ 3]
14# [13]
15# [23]]
1次元配列は計算前に reshape() して2次元配列にする
python
1import numpy as np
2
3# 3x2
4a = np.array([[0, 1],
5 [2, 3],
6 [4, 5]])
7
8b = np.array([2, 3])
9
10# 3x1
11c = a @ b.reshape(2, 1)
12print(c)
13# [[ 3]
14# [13]
15# [23]]