的产品,我理解numpy的点功能背后的工作有一个问题,broadcasting.Below是片断我想了解Np个阵列点矢量和阵列
a=np.array([[1,2],[3,5]])
如果我们检查的形状一个 a.shape
的将是(2,2)
b=np.array([3,6])
和b.shape is (2,)
问题1:是b
列向量或行向量?在提供输入时,似乎b
是行向量,但随后形状将其显示为具有2行的列向量。在我的理解中,错误是什么?
现在如果做 a.dot(b)
它导致 array([15,39])
问题2:按矩阵乘法如果a
是m*n
然后b
必须n*k
并且由于a
是2 * 2然后b
必须是2 * 1。这是否证实b
是列向量,否则如果它是行向量,则不可能进行矩阵乘法,但点积的输出确实给出根据矩阵乘法的值,考虑b
作为列向量并将其广播
现在b.dot(a)
也可以在 array([21,36])
和 这个吹我mind.How他们在检查矩阵乘法矢量的兼容性以及他们是如何计算的结果吗? 在至少一个场景中,它们必须抛出乘法的不兼容维度的错误。但它没有显示,它们正在计算两种情况下的结果。
一个= np.array([[1,2],[3,5 ])这必须是a = np.array([[1,2],[3,5]])。阵列产品和矩阵产品是不同的。我建议你通过差异 – LethalProgrammer