私は NumPy を学んでいますが、オペレーター*
が実際に何をしているのかよくわかりません。なんらかの掛け算のように見えますが、どのように決定されるのかはわかりません。ipython から:
In [1]: import numpy as np
In [2]: a=np.array([[1,2,3]])
In [3]: b=np.array([[4],[5],[6]])
In [4]: a*b
Out[4]:
array([[ 4, 8, 12],
[ 5, 10, 15],
[ 6, 12, 18]])
In [5]: b*a
Out[5]:
array([[ 4, 8, 12],
[ 5, 10, 15],
[ 6, 12, 18]])
In [6]: b.dot(a)
Out[6]:
array([[ 4, 8, 12],
[ 5, 10, 15],
[ 6, 12, 18]])
In [7]: a.dot(b)
Out[7]: array([[32]])
行列の乗算を行っているように見えますが、 をb
乗算するだけa
で、その逆ではありません。何が起こっている?