Python 2列向量的Numpy内积
如何在python的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 您要做
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。点
更常见。查看文档时,请记住列向量是二维数组。