2016-02-28 247 views
0

我有一个大小为n的矢量V。我想创建一个大小为n*n的矩阵,以便矩阵中的每个值都是M(i,j) = V(i)*V(j)从矢量复制创建矩阵,python

很多循环都可以解决它,但我需要它相当快。

回答

1

这就是所谓的产品外

import numpy as np 

v = np.random.randint(0, 10, 3) 
print v 

M = np.outer(v,v) 
print M 
0

我会建议使用numpy的。但是,这是一个使用列表理解的纯Python解决方案:

v = [5, 1, 9] 
>>> [[row * col for row in v] for col in v] 
[[25, 5, 45], [5, 1, 9], [45, 9, 81]]