numpy中向量的表示:np.array()返回行向量?

时间:2017-11-15 06:15:10

标签: numpy

我是numpy的新手,我猜np.array()的返回是一个行向量,因为两个向量之间的点积是可交换的,我猜对了吗?任何反响都很感激。

vx = np.array([1, 2])
vw = np.array([3, 5])
np.dot(vx, vw)
np.dot(vw, vx)

1 个答案:

答案 0 :(得分:1)

数组是1d('向量',而不是行/列向量)。

来自dot docuentation的第一段:

  

对于二维阵列,它相当于矩阵乘法,对于1-D   阵列到载体的内积(没有复共轭)。对于   N维是指a的最后一个轴上的和积   b

的倒数第二位

所以你得到了内在的产品,这是可交换的。

In [118]: vx = np.array([1, 2])
In [119]: vx.shape
Out[119]: (2,)

dot返回一个标量:

In [120]: np.dot(vx,vx)
Out[120]: 5

对于2d'行向量',形状很重要。 dot是矩阵乘法,最后调暗以匹配第二个到最后一个,例如2匹配2。

In [121]: vx2 = np.array([[1,2]])
In [122]: vx2.shape
Out[122]: (1, 2)
In [123]: np.dot(vx2, vx2)
...
ValueError: shapes (1,2) and (1,2) not aligned: 2 (dim 1) != 1 (dim 0)
In [124]: np.dot(vx2, vx2.T)
Out[124]: array([[5]])

在这种情况下,结果是2d(1,1)。