Numpy:将矩阵元素与矩阵数组相乘

时间:2014-09-19 14:02:53

标签: python arrays numpy matrix multidimensional-array

我需要将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]]]]

1 个答案:

答案 0 :(得分:3)

编辑:从@Dalek和@DSM的评论看来,实际上你想要的是:

np.einsum('ij, ijkl-> ijkl', x, y)