【发布时间】:2016-02-28 20:36:27
【问题描述】:
我有一个大小为n 的向量V。我想创建一个大小为n*n 的矩阵,这样矩阵中的每个值都是M(i,j) = V(i)*V(j)。
许多循环都会解决它,但我需要它相当快。
【问题讨论】:
标签: python matrix vector vectorization
我有一个大小为n 的向量V。我想创建一个大小为n*n 的矩阵,这样矩阵中的每个值都是M(i,j) = V(i)*V(j)。
许多循环都会解决它,但我需要它相当快。
【问题讨论】:
标签: python matrix vector vectorization
这叫外积
import numpy as np
v = np.random.randint(0, 10, 3)
print v
M = np.outer(v,v)
print M
【讨论】:
我会推荐使用 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]]
【讨论】: