Умножение матриц разных измерений в python

#python #python-2.7 #numpy

Вопрос:

Мне нужно умножить следующие матрицы, которые имеют разные размеры:

 a= [[[1. 1. 1. 1. 1. 1.]]]

b= [[[ 0.50709072  0.50709072  0.50709072  0.50709072  0.50709072
    0.50709072]
  [ 0.50156421  0.50156421  0.50156421  0.50156421  0.50156421
    0.50156421]
  [ 0.4934983   0.4934983   0.4934983   0.4934983   0.4934983
    0.4934983 ]
  [ 0.49774671  0.49774671  0.49774671  0.49774671  0.49774671
    0.49774671]]

 [[-0.50156421 -0.50156421 -0.50156421 -0.50156421 -0.50156421
   -0.50156421]
  [ 0.83307796  0.83307796  0.83307796  0.83307796  0.83307796
    0.83307796]
  [-0.16423768 -0.16423768 -0.16423768 -0.16423768 -0.16423768
   -0.16423768]
  [-0.16565156 -0.16565156 -0.16565156 -0.16565156 -0.16565156
   -0.16565156]]

 [[-0.4934983  -0.4934983  -0.4934983  -0.4934983  -0.4934983
   -0.4934983 ]
  [-0.16423768 -0.16423768 -0.16423768 -0.16423768 -0.16423768
   -0.16423768]
  [ 0.83840351  0.83840351  0.83840351  0.83840351  0.83840351
    0.83840351]
  [-0.16298763 -0.16298763 -0.16298763 -0.16298763 -0.16298763
   -0.16298763]]

 [[-0.49774671 -0.49774671 -0.49774671 -0.49774671 -0.49774671
   -0.49774671]
  [-0.16565156 -0.16565156 -0.16565156 -0.16565156 -0.16565156
   -0.16565156]
  [-0.16298763 -0.16298763 -0.16298763 -0.16298763 -0.16298763
   -0.16298763]
  [ 0.83560924  0.83560924  0.83560924  0.83560924  0.83560924
    0.83560924]]]

c= [[4.55965106 4.55965106 4.55965106 4.55965106 4.55965106 4.55965106]]
 

Формы матриц являются

u_1.форма, s_1.форма, vh_1.форма ((4, 4, 6), (1, 6), (1, 1, 6))

Я получил массаж с ошибкой:

matmul: Входной операнд 1 имеет несоответствие в своем основном измерении 0, с сигнатурой gufunc (n?,k),(k,m?)->(n?,m?) (размер 1 отличается от 6)

Как я могу умножить такие матрицы ?

Комментарии:

1. Не могли бы вы, пожалуйста, добавить предполагаемый результат? Или какое именно матричное умножение (математически) вы хотите?

2. Какого рода умножение? Сообщение об ошибке создается @ , np.matmul . Это имеет очень конкретные правила для совместного использования 3d-массивов. Вы это читали? Для поэлементного умножения (использования * ) эти массивы должны работать. Но для @ этого вам придется подробно рассказать о том, что вы ожидаете, что произойдет.