Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.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 2列向量的Numpy内积_Python_Numpy_Vector_Inner Product - Fatal编程技术网

Python 2列向量的Numpy内积

Python 2列向量的Numpy内积,python,numpy,vector,inner-product,Python,Numpy,Vector,Inner Product,如何在python的numpy 下面的代码不起作用 import numpy as np x = np.array([[1], [2]]) np.inner(x, x) 它回来了 array([[1, 2], [2, 4]])` 尺寸为2x1(2行1列)的向量与另一个尺寸为2x1(2行1列)的向量的内积是尺寸为2x2(2行2列)的矩阵,而不是5。当你取任何张量的内积时,最内层的维度必须匹配(在本例中为1),结果是一个张量,维度与外层匹配,即。;a 2x1*1x2=2x2 您要做

如何在python的
numpy

下面的代码不起作用

import numpy as np
x = np.array([[1], [2]])
np.inner(x, x)
它回来了

array([[1, 2],
       [2, 4]])`

尺寸为2x1(2行1列)的向量与另一个尺寸为2x1(2行1列)的向量的内积是尺寸为2x2(2行2列)的矩阵,而不是
5

。当你取任何张量的内积时,最内层的维度必须匹配(在本例中为1),结果是一个张量,维度与外层匹配,即。;a 2x1*1x2=2x2

您要做的是将这两个变量进行转置,这样当您乘以维度时,它们是1x2*2x1=1x1

更一般地说,将维度为
NxM
的任何东西乘以维度为
MxK
的东西,得到维度为
NxK
的东西。注:内部尺寸必须同时为
M
。更多

np.internal
函数将自动转置第二个参数,因此当您传入两个2x1时,您将得到一个2x2,但如果传入两个1x2,您将得到一个1x1

试试这个:

import numpy as np
x = np.array([[1], [2]])
np.inner(np.transpose(x), np.transpose(x))
或者简单地将x最初定义为行向量

import numpy as np
x = np.array([1,2])
np.inner(x, x)

我想你的意思是:

x= np.array([1,2])

为了获得5作为输出,如果要应用于向量,则向量必须是1xN而不是Nx1

np.dot(np.transpose(a),a))

确保col_向量具有形状(N,1),其中N是元素数

然后简单地将一对一的乘法结果相加

np.sum(col_vector*col_vector)


x=np。数组([1,2])
是他的意思,我猜。@kabanus是的,他可能会说,但问题确实说明了“列向量”,因此我想给出一个保留列向量
np的答案。
numpy
中不经常使用内部
<代码>np。点
更常见。查看文档时,请记住列向量是二维数组。