【发布时间】:2019-09-14 00:38:36
【问题描述】:
假设你有 n。任意(但相等)长度为 m 的向量。是否有(numpy?)函数或快速方法来计算这些 n 之间的所有成对点积。载体?
我最初的想法是你可以计算 ATA 并取上三角部分,但我不确定矩阵乘法是否缓慢/计算密集。有没有更快/更有效的方法?还是应该只为所有对组合使用 for 循环定义一个函数?
【问题讨论】:
-
你的意思是标量积吗?
-
我想将二维数组
arr的所有列乘以所有其他列,请使用 tensordot :np.tensordot(arr, arr, axes=(0,0))。结果形状为(n,n) -
@Chgad 是的,点积或标量积或内积。
-
@Brenlla Tensordot 看起来正是我需要的,谢谢!
-
顺便说一句,
A.T.dot(A)也应该可以正常工作,不需要取三角形部分