Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在两个向量上使用np.dot有什么效果?_Python_Numpy_Vector_Machine Learning_Matrix Multiplication - Fatal编程技术网

Python 在两个向量上使用np.dot有什么效果?

Python 在两个向量上使用np.dot有什么效果?,python,numpy,vector,machine-learning,matrix-multiplication,Python,Numpy,Vector,Machine Learning,Matrix Multiplication,这个问题与numpy库有关 根据以前的经验,np.dot与矩阵乘法相同。然而,我假设两个向量相乘是不可能的,因为维度是错误的。所以我的问题是,np.dot实际上对两个向量做了什么 此外,假设我有下面的代码,并假设np.dot生成一个标量,正如文档中所说的那样 x= np.dot(dc, self.c)[:self.ys] 如果x也是一个向量,那么操作[:self.ys]如何将np.dot中两个向量的结果更改为向量?我找不到任何详细信息。numpy.dot函数返回两个数组的点积。对于二维向量,它

这个问题与numpy库有关

根据以前的经验,np.dot与矩阵乘法相同。然而,我假设两个向量相乘是不可能的,因为维度是错误的。所以我的问题是,np.dot实际上对两个向量做了什么

此外,假设我有下面的代码,并假设np.dot生成一个标量,正如文档中所说的那样

x= np.dot(dc, self.c)[:self.ys]

如果x也是一个向量,那么操作[:self.ys]如何将np.dot中两个向量的结果更改为向量?我找不到任何详细信息。

numpy.dot函数返回两个数组的点积。对于二维向量,它等价于矩阵乘法。对于一维阵列,它是向量的内积。对于n维数组,它是a的最后一个轴和b的第二个最后一个轴的和积


来源:

numpy.dot在两个产品之间执行点或内积。但是,它还执行一个称为广播的操作,这在许多语言中都很常见,除了matlab将维度匹配部分重新命名为隐式扩展。在这种情况下,为了方便和性能,尺寸自动完成到匹配的产品。更多的解释是


[:self.ys]是一个片段。假设self.ys的值为5。这意味着获取点积的结果,只将前5项分配给x,因为Python使用零索引。如果起始数字为零,则可以省略它,因此也是为了方便。[a:b]是[a,a+1,…,b-1]如果a是0,则可以省略它,并假定它为0。

问题的第一部分在:*对于向量*内积的一维数组。。。。第二部分不明确。请提供一个完整的代码示例摆脱self并定义使用的变量。我正在使用.Net语言开发一个lstm神经网络,并将此python代码用作示例。x=隐藏状态向量的导数,dc=单元状态向量的导数,self.c=时间步长tS向量中的单元状态,self.ys=输出大小。我的问题是,如果np.dot生成一个标量,但x是一个向量,[:ys]如何将标量转换为向量?这是关键。。。[]不转换向量中的标量。它给出了一个错误索引器错误:标量变量的索引无效。if dot返回一个标量。所以要么是代码错误,要么是输入不是你所想的。完整的源代码是dc,而c看起来是向量。然而,我可能误解了self的作用,因为在lstm类级别上有一个称为c的变量,在数组级别上有一个称为c的变量,在方法级别上有一个称为向量的变量。如果点积的结果是标量,那么它怎么能取第一个ys项?@AlexMcKinney如果dc是列向量,则结果是矩阵。首先看结果,我认为它们都是列向量。虽然这里是完整的源代码,但它有两个名为c的变量,一个是数组,另一个是向量。“我可能误解了self所做的事情。”AlexMcKinney在类代码中插入了一些打印。所以你可以看到什么样的论点。