2列向量的Numpy内积
Numpy inner product of 2 column vectors
如何对 python 的 numpy
中的 2 个列向量进行内积
以下代码无效
import numpy as np
x = np.array([[1], [2]])
np.inner(x, x)
返回
array([[1, 2],
[2, 4]])`
而不是5
一个维度为 2x1(2 行,1 列)的向量与另一个维度为 2x1(2 行,1 列)的向量的内积是一个维度为 2x2(2 行,2 列)的矩阵。当你取任何张量的内积时,最里面的维度必须匹配(在这种情况下为 1),结果是一个维度与外部匹配的张量,即;一个 2x1 * 1x2 = 2x2.
你想要做的是转置两者,这样当你乘以尺寸时,尺寸为 1x2 * 2x1 = 1x1。
更一般地说,将尺寸为 NxM
的任何东西乘以尺寸为 MxK
的东西,会产生尺寸为 NxK
的东西。请注意,内部尺寸必须均为 M
。更多,review your matrix multiplication rules
np.inner
函数会自动转置第二个参数,因此当您传入两个 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 作为输出,如果你想在上面应用 np.inner,你的矢量需要是 1xN 而不是 Nx1
尝试下面的方法会有用
np.dot(np.transpose(a),a))
确保 col_vector 具有形状 (N,1),其中 N 是元素的数量
然后简单地将乘法结果一一相加
np.sum(col_vector*col_vector)
如何对 python 的 numpy
以下代码无效
import numpy as np
x = np.array([[1], [2]])
np.inner(x, x)
返回
array([[1, 2],
[2, 4]])`
而不是5
一个维度为 2x1(2 行,1 列)的向量与另一个维度为 2x1(2 行,1 列)的向量的内积是一个维度为 2x2(2 行,2 列)的矩阵。当你取任何张量的内积时,最里面的维度必须匹配(在这种情况下为 1),结果是一个维度与外部匹配的张量,即;一个 2x1 * 1x2 = 2x2.
你想要做的是转置两者,这样当你乘以尺寸时,尺寸为 1x2 * 2x1 = 1x1。
更一般地说,将尺寸为 NxM
的任何东西乘以尺寸为 MxK
的东西,会产生尺寸为 NxK
的东西。请注意,内部尺寸必须均为 M
。更多,review your matrix multiplication rules
np.inner
函数会自动转置第二个参数,因此当您传入两个 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 作为输出,如果你想在上面应用 np.inner,你的矢量需要是 1xN 而不是 Nx1
尝试下面的方法会有用
np.dot(np.transpose(a),a))
确保 col_vector 具有形状 (N,1),其中 N 是元素的数量
然后简单地将乘法结果一一相加
np.sum(col_vector*col_vector)