我需要将a的元素乘以2x2矩阵x乘以矩阵y,其元素为2x2矩阵。当我使用传统的numpy乘法时,它采用整个矩阵x,并将其与y中的每个矩阵相乘。我一直在搜索numpy doc。对于会复制这个的东西:
>>> x = np.array([[1, 0], [0, 1]])
>>> x
array([[1, 0],
[0, 1]])
>>> y = np.ones((2, 2, 2, 2))
>>> y
array([[[[ 1., 1.],
[ 1., 1.]],
[[ 1., 1.],
[ 1., 1.]]],
[[[ 1., 1.],
[ 1., 1.]],
[[ 1., 1.],
[ 1., 1.]]]])
>>> multiply(x,y)
[[[[1, 1],
[1, 1]],
[[0, 0],
[0, 0]]],
[[[0, 0],
[0, 0]],
[[1, 1],
[1, 1]]]]
答案 0 :(得分:3)
np.einsum('ij, ijkl-> ijkl', x, y)