(x,y,1) * (x,y) 的逐元素乘法
Element-wise Multiplication of (x,y,1) * (x,y)
matrixADimensions = matrixA.shape # returns [901,1249,1]
matrixBDimensions = matrixB.shape # returns [901,1249]
我正在尝试对 matrixA 和 matrixB 进行逐元素乘法运算,但出现错误 ValueError: operands could not be broadcast together with shapes (901,1249,1) (901,1249)
。
我认为这与两个矩阵的维度有关,因为它们不相同。实际上,从技术上讲,它们是相同的,因为 [901,1249,1]
与 [901,1249]
相同,但 Python 似乎不知道这一点。
如何将矩阵 A 与矩阵 B 相乘?
您可以使用 numpy.squeeze
从数组形状中删除 single-dimensional 个条目。所以在你的情况下,你会这样做:
import numpy as np
np.squeeze(matrixA) * matrixB
这样做的好处是不需要知道 single-dimensional 条目在数组形状中的位置(与采用 matrixA[:,:,0]
等索引方法不同)。
matrixADimensions = matrixA.shape # returns [901,1249,1]
matrixBDimensions = matrixB.shape # returns [901,1249]
我正在尝试对 matrixA 和 matrixB 进行逐元素乘法运算,但出现错误 ValueError: operands could not be broadcast together with shapes (901,1249,1) (901,1249)
。
我认为这与两个矩阵的维度有关,因为它们不相同。实际上,从技术上讲,它们是相同的,因为 [901,1249,1]
与 [901,1249]
相同,但 Python 似乎不知道这一点。
如何将矩阵 A 与矩阵 B 相乘?
您可以使用 numpy.squeeze
从数组形状中删除 single-dimensional 个条目。所以在你的情况下,你会这样做:
import numpy as np
np.squeeze(matrixA) * matrixB
这样做的好处是不需要知道 single-dimensional 条目在数组形状中的位置(与采用 matrixA[:,:,0]
等索引方法不同)。