Python Numpy:列表中所有向量的点积
假设我有一个800个向量的列表,每个向量由1440个标量组成Python Numpy:列表中所有向量的点积,python,list,numpy,dot-product,Python,List,Numpy,Dot Product,假设我有一个800个向量的列表,每个向量由1440个标量组成 List = [(1, 2, 3, ... , 1440), (1, 2, 3, ... , 1440), (1, 2, 3, ... , 1440), ...] 如何使用python和numpy以最快的方式计算每个向量对彼此向量的点积?如果需要对称矩阵,其中x_ij是a_I与a_j的点积,那么: a=np.array(列表) x=a@a.T 您可以使用np.triu\u索引或np.t
List = [(1, 2, 3, ... , 1440),
(1, 2, 3, ... , 1440),
(1, 2, 3, ... , 1440),
...]
如何使用python和numpy以最快的方式计算每个向量对彼此向量的点积?如果需要对称矩阵,其中
x_ij
是a_I
与a_j
的点积,那么:
a=np.array(列表)
x=a@a.T
您可以使用np.triu\u索引
或np.tril\u索引
来避免计算矩阵的后半部分。这不会影响计算的复杂性,但可能会为足够数量的长向量节省一些时间:
a = np.array(x)
n = a.shape[0]
r, c = np.triu_indices(n)
result = np.empty((n, n))
result[r, c] = result[c, r] = np.sum(a[r] * a[c], axis=1)
你的尝试是什么?你期望的结果是什么形状?它是一个对称矩阵,其中
x_ij
是a_i
与a_j
的点积。向量描述图像。我想通过得到向量的点积来比较它们。然后我想把他们安排在画布上。我提供了你想要的答案?这个@代表什么意思?@
。另见。