Why is it in numpy possible to multiply a 2x2 matrix by a 1x2 row vector?
import numpy as np
I = np.array([[1.0, 0.0], [0.0, 1.0]])
x = np.array([2.0,3.0])
In: I * x
Out: array([[ 2., 0.], [ 0., 3.]])
Transposing x does also make no sense. A row vector stays a row vector?
In: x.T
Out: array([ 2., 3.])
From a mathematical point of view the representation is very confusing.