我有两个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]])
1 回答
dot
函数是矩阵乘法,不涉及广播 . 使用np.dot(A,Y.T)
与python 3.5中的A@Y.T
相同 .矩阵乘法不是可交换的(参数的顺序很重要) . 在第一种用法中,A是行向量,Y.T是列向量 . 这导致单个值 .
在第二个例子中,Y.T是列向量,而A是行向量 . 这导致矩阵 .