tra*_*ang 2 python numpy vector inner-product
我怎样才能在Python的2列向量的内积 numpy
下面的代码不起作用
import numpy as np
x = np.array([[1], [2]])
np.inner(x, x)
Run Code Online (Sandbox Code Playgroud)
它回来了
array([[1, 2],
[2, 4]])`
Run Code Online (Sandbox Code Playgroud)
代替 5
一个尺寸为2x1(2行1列)的向量与另一个尺寸为2x1(2行1列)的向量的内积是一个矩阵,尺寸为2x2(2行2列)。当您获取任何张量的内积时,最里面的尺寸必须匹配(在这种情况下为1),结果是张量的尺寸与外面的尺寸匹配,即;2x1 * 1x2 = 2x2。
您要做的是对两者进行转置,以便在相乘时尺寸为1x2 * 2x1 = 1x1。
更一般而言,将任何带有维数NxM的东西乘以带有维数的东西MxK,会得到带有维数的东西NxK。注意内部尺寸都必须为M。有关更多信息,请查看矩阵乘法规则
该np.inner函数将自动转置第二个参数,因此当您传入两个2x1时,您会得到一个2x2,但是如果传入两个1x2,则将得到一个1x1。
尝试这个:
import numpy as np
x = np.array([[1], [2]])
np.inner(np.transpose(x), np.transpose(x))
Run Code Online (Sandbox Code Playgroud)
或者只是将x最初定义为行向量。
import numpy as np
x = np.array([1,2])
np.inner(x, x)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5423 次 |
| 最近记录: |