这个问题与numpy库有关。
根据以前的经验,np.dot与矩阵乘法相同。然而,由于维度是错误的,因此我假设将两个向量相乘是不可能的。所以我的问题是,np.dot实际上对两个向量做了什么?
此外,假设我有以下代码并假设np.dot生成标量(正如文档中所述)。
x= np.dot(dc, self.c)[:self.ys]
其中x也是一个向量,操作[:self.ys]如何将np.dot中两个向量的结果更改为向量?我找不到任何细节。
答案 0 :(得分:1)
numpy.dot执行" dot"或两种产品之间的内在产品。但是,它还执行一种称为广播的操作,这种操作对于许多语言来说都是常见的(除了matlab将维度匹配部分重新命名为隐式扩展)。在这种情况下,为了方便和性能,尺寸自动完成到匹配的产品。更多解释是here。
[:self.ys]
是一个切片。假设self.ys
的值为5.那么它意味着获取点积的结果,并且只将前5个项分配给x
,因为Python使用零索引。如果它为零,您可以省略起始编号,因此也是为了方便起见。如果[a:b]
为0,则[a,a+1,...,b-1]
为a
,那么您可以将其保留为假设。{/ p>
答案 1 :(得分:0)
numpy.dot()函数返回两个数组的点积。对于二维向量,它等效于矩阵乘法。对于1-D阵列,它是向量的内积。对于N维数组,它是a的最后一个轴和b的倒数第二个轴的和积。