【发布时间】:2018-01-23 06:59:07
【问题描述】:
例如,我有一个形状为[1,D]的向量
如果 D = 4
v = np.array([[1, 2, 3, 4]]) # shape = [1,4]
然后做
np.dot(v.T,v)
结果是
Out[80]:
array([[ 1, 2, 3, 4],
[ 2, 4, 6, 8],
[ 3, 6, 9, 12],
[ 4, 8, 12, 16]])
现在我有很多向量,它们的形状是 [N,D]
那是 N 个 D 维向量
我怎样才能以最有效的方式得到结果
PS:结果将是一个形状为 [N,D,D] 的 numpy.ndarray
【问题讨论】:
-
你能举例说明
[[1, 2], [1, 2]]的输出是什么吗? -
数组([[[1, 2], [2, 4]],[[4, 2],[2, 1]]])
-
np.einsum和np.matmul可以处理这个问题。实际上这是外部产品,所以你不需要那些。广播可以处理。
标签: python numpy matrix vector