我试着把nx3向量中每一行的点积取出来。让我再解释一下:我需要的是从nx3到nx3x3阵列。你知道吗
如果我有以下情况:
A = np.array([[1, 2, 2],
[4, 2, 3])
我想知道它是什么:
第一个元素:
np.dot(A[0].reshape(3,1), A[0].reshape(1,3)) = array([[1, 2, 2], [2, 4, 4], [2, 4, 4]])
第二个要素:
np.dot(A[1].reshape(3,1), A[1].reshape(1,3)) = array([[16, 8, 12], [8, 4, 6], [12, 6, 9]])
所以我的最后一个数组是:
result = array([[[ 1, 2, 2],
[ 2, 4, 4],
[ 2, 4, 4]],
[[16, 8, 12],
[ 8, 4, 6],
[12, 6, 9]])
result.shape = (2, 3, 3)
我知道我可以用for循环来实现这一点,但我想肯定有一种方法可以更快更直接地实现。速度对我的需要至关重要。你知道吗
希望我解释得足够正确。先谢谢你。你知道吗
这不是一个
dot
积;没有积的总和。相反,它更像是一个outer
产品,增加了维度的数量。numpy
通过广播可以很好地做到这一点:相关问题 更多 >
编程相关推荐