0
matrixADimensions = matrixA.shape # returns [901,1249,1] 
matrixBDimensions = matrixB.shape # returns [901,1249] 

Я пытаюсь получить поэлементное умножение матрицы А и matrixB, но я получаю ошибку ValueError: operands could not be broadcast together with shapes (901,1249,1) (901,1249).поэлементно Умножение (х, у, 1) * (х, у)

Я считаю, что это имеет какое-то отношение к размерам обеих матриц, поскольку они не совпадают. На самом деле, технически они одинаковы, так как [901,1249,1] - это то же самое, что и [901,1249], но Python, похоже, не знает этого.

Как можно умножить матрицу A на матрицу B?

+3

'матрицаA [:,:, 0] * матрицаB' должен работать. – VBB

+0

Спасибо, это сработало – Senyokbalgul

ответ

1

Вы можете использовать numpy.squeeze для удаления одномерных записей из формы вашего массива. Так что в вашем случае, вы могли бы сделать:

import numpy as np 

np.squeeze(matrixA) * matrixB 

Это имеет то преимущество, что не нужно знать положение вашего одномерному записи в вашей форме массива (в отличие от принимая индексации подхода, таких как matrixA[:,:,0]).

+0

Aha, спасибо за ответ – Senyokbalgul

Смежные вопросы