我有两个numpy数组。当我使用numpy dot功能时,我得到了不同的结果。我无法理解点函数如何与广播一起产生这些输出。 有人能解释我这两者之间的区别。
A = np.array([[2,4,6]])
Y = np.array([[1,0,1]])
np.dot(A,Y.T) = array([8])
np.dot (Y.T, A) = array([[2, 4, 6],
[0, 0, 0],
[2, 4, 6]])
答案 0 :(得分:1)
dot
函数是矩阵乘法,不涉及广播。
使用np.dot(A,Y.T)
与python 3.5 +中的A@Y.T
相同。
矩阵乘法不是可交换的(参数的顺序很重要)。 在第一种用法中,A是行向量,Y.T是列向量。这导致单个值。
在第二个例子中,Y.T是列向量,而A是行向量。这导致矩阵。