我被pythonnumpy上的矩阵运算搞糊涂了。 看起来点和外部运算的行为不像我在线性代数课上学到的那样。在
import numpy
n = numpy.arange(-5, 6)
w = numpy.arange(-20, 21)
n.shape
w.shape
outer = numpy.outer(w, n)
outer.shape
dot = numpy.dot(n, outer.transpose())
dot.shape
这里n是(11,1)矩阵,w是(41,1)矩阵。(1和w的尺寸不匹配。)
再一次,我觉得这个点很奇怪。n是(11,1)矩阵,外部转置()是(11,41)矩阵。我觉得尺寸也不相配。在
根据文献http://docs.scipy.org/doc/numpy/reference/generated/numpy.outer.html,两个行向量}的{}函数是一个矩阵}。这正是你所看到的。在
A(1xn)
和{M(nxm)
-并且转置的维数是{因此,向量和矩阵的点乘在文献中再次被描述:http://docs.scipy.org/doc/numpy/reference/generated/numpy.dot.html#numpy.dot-其中它本质上被描述为行向量(第一个参数)与第二个参数(矩阵)的转置的矩阵相乘。在
当我打印出代码创建的各种对象的形状时,我得到:
这和上面的完全一致。你的困惑是什么?什么结果不是你所期望的?在
相关问题 更多 >
编程相关推荐