Полагаю, отсутствует только один особый случай, который еще не реализован. Почему бы не пойти с многомерными массивами из NumPy?
sage: import numpy
sage: x = numpy.arange(16)
sage: x.shape = (2,2,2,2)
sage: x
array([[[[ 0, 1],
[ 2, 3]],
[[ 4, 5],
[ 6, 7]]],
[[[ 8, 9],
[10, 11]],
[[12, 13],
[14, 15]]]])
sage: 3*x
array([[[[ 0, 3],
[ 6, 9]],
[[12, 15],
[18, 21]]],
[[[24, 27],
[30, 33]],
[[36, 39],
[42, 45]]]])
sage: x[0,0]
array([[0, 1],
[2, 3]])
sage: x[0,0] * x[1,0]
array([[ 0, 9],
[20, 33]])
sage: x[0,0].dot(x[1,0])
array([[10, 11],
[46, 51]])