将不同维度的大型矩阵与numpy相乘

时间:2019-12-02 21:36:37

标签: python numpy matrix matrix-multiplication

我编写了一个python程序,该程序从文本文件中获取数字并生成两个矩阵。这些矩阵的大小非常大。

例如,矩阵1是5 * X,矩阵2是X * 5,其中X是0到160之间的随机数

我尝试了以下方法将矩阵相乘,并使用较小的数字来验证相乘:

result = np.dot(matrix1,matrix2)
result = matrix1.dot(matrix2)
result = np.multiply(matrix1, matrix2[:, None])

当两个矩阵的尺寸彼此相等时,这三种方法可以起作用。因此,将5 * 5矩阵乘以5 * 5矩阵即可。我的代码尝试乘以维度不相等的矩阵时,将引发错误。例如,将5 * 4矩阵乘以3 * 5矩阵将抛出一个错误,该错误始终指向我上面显示的三种方法之一

如何将两个不同维度的矩阵相乘?

1 个答案:

答案 0 :(得分:1)

对于矩阵A定义为MxN,矩阵B为NxP,因此得出矩阵AB的尺寸为MxP。

第一个矩阵中的“列”数必须与第二个矩阵中的“行”数相同。其他两个维度不需要匹配。

您可以通过切换矩阵的顺序或换位来实现这一点,但是Mx N N xP两个“ N”维必须匹配。