Hon*_*.Wu 5 python numpy linear-algebra
numpy.dot docstring说:
对于2-D阵列,它相当于矩阵乘法,对于1-D阵列相当于矢量的内积(没有复共轭).对于N维,它是a的最后一个轴和b的倒数第二个轴的和积
但它没有说明numpy.dot如何计算具有二维数组的一维数组.那么Numpy如何处理具有二维数组(矩阵)的一维数组(向量)?
我做了一些测试:
In [27]: a
Out[27]:
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
In [28]: b
Out[28]: array([0, 1, 2])
In [29]: np.dot(a,b)
Out[29]: array([ 5, 14, 23])
In [30]: np.dot(a, b.reshape(-1,1))
Out[30]:
array([[ 5],
[14],
[23]])
In [31]: np.dot(a, b.reshape(-1,1)).ravel() # same as np.dot(a,b)
Out[31]: array([ 5, 14, 23])
In [32]: np.dot(b,a)
Out[32]: array([15, 18, 21])
In [33]: np.dot(b.reshape(1,-1), a)
Out[33]: array([[15, 18, 21]])
In [34]: np.dot(b.reshape(1,-1), a).ravel() # same as np.dot(b,a)
Out[34]: array([15, 18, 21])
Run Code Online (Sandbox Code Playgroud)
上面的测试表明numpy.dot可以处理带有二维数组的一维数组.这样对吗?
只有一个案例未在文档中明确描述,但有点暗示,即如何应用于2D和1D输入规则:
它是a的最后一个轴和b的倒数第二个的和积
在你的情况下,当你这样做时np.dot(a, b),没有"倒数第二"的轴b.那么numpy是什么,是为了最后解决.因此,它的每一行的总和产品a有b,作为测试容易显示.
您的所有其他示例都符合上述规则.
| 归档时间: |
|
| 查看次数: |
279 次 |
| 最近记录: |