Как я понимаю следующее?Согласно документации, a @ b должно быть условным умножением матрицы, когда и a, и b являются двумерным массивом.
>>> np.arange(20).reshape((2,10)) @ np.eye(10)
array([[ 9., 2., 4., 6., 0., 1., 3., 5., 8., 9.],
[29., 12., 14., 16., 0., 11., 13., 15., 18., 19.]])
Почему это не просто транспонирование следующего
>>> np.eye(10) @ np.arange(20).reshape((10,2))
array([[ 0., 1.],
[ 2., 3.],
[ 4., 5.],
[ 6., 7.],
[ 8., 9.],
[10., 11.],
[12., 13.],
[14., 15.],
[16., 17.],
[18., 19.]])