如何乘以2个矩阵(Python)

时间:2014-03-17 17:43:58

标签: python numpy matrix multiplying

任何人都可以帮我吗?我相信这很容易,但我不知道该怎么做?

使用元素1,2,3,4,52,3,4,5,6创建两个矩阵,矩阵为 繁殖。

我有这个,但我不知道如何将它们相乘:

import numpy as np
a=np.arange(5).reshape(1,5)
b=np.arange(6).reshape(1,6)
print a
print b

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

如果您需要数学矩阵乘法(点积),请使用numpy.dot(请参阅链接背后的示例)。请注意,对于numpy.dot,如果数组的形状为(5,1)或(1,5),则无关紧要。您可以使用a.T转换数组。

答案 1 :(得分:3)

我认为您的问题是您的阵列不是您认为的那样:

>>> np.arange(5).reshape(1, 5)
array([[0, 1, 2, 3, 4]])
>>> np.arange(6).reshape(1, 6)
array([[0, 1, 2, 3, 4, 5]])

相反,你可能想要:

>>> np.arange(1, 6).reshape(1, 5)
array([[1, 2, 3, 4, 5]])
>>> np.arange(2, 7).reshape(1, 5)
array([[2, 3, 4, 5, 6]])

然后你可以直接将它们相乘:

>>> a = np.arange(1, 6).reshape(1, 5)
>>> b = np.arange(2, 7).reshape(1, 5)
>>> a*b
array([[ 2,  6, 12, 20, 30]])

注意这是用于逐元素乘法的。对于点积,请参阅leeladam的答案。