繁体   English   中英

向量 * 向量(矩阵乘法)

[英]Vector * Vector (Matrix multiplication)

我想用一个向量做以下事情。

a = np.array(np.arange(0, 4, 1))

我想得到一个乘法器,它会产生一个像这样的矩阵

 | 0  1  2  3  4
-| - - - - - - - 
0| 0  0  0  0  0
1| 0  1  2  3  4
2| 0  2  4  6  8
3| 0  3  6  9 12
4| 0  4  8 12 16

以下我总是得到一个标量:

a*a
a.dot(a)
a.T*a
a*a.T
a.T.dot(a)
a.dot(a.T)
a.transpose()*a

请参阅将 NumPy 向量转换为二维数组/矩阵

>>> a = a[:,np.newaxis]                                                                                                                       
>>> a * a.T                                                                                                                                   
array([[0, 0, 0, 0],
       [0, 1, 2, 3],
       [0, 2, 4, 6],
       [0, 3, 6, 9]])

一个更好的解决方案是

a = np.array([np.arange(0, 4, 1)])
a*a.T
array([[0, 0, 0, 0],
       [0, 1, 2, 3],
       [0, 2, 4, 6],
       [0, 3, 6, 9]])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM