2016-02-28 191 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]]