Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Numpy:列表中所有向量的点积_Python_List_Numpy_Dot Product - Fatal编程技术网

Python Numpy:列表中所有向量的点积

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

假设我有一个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.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
的点积。向量描述图像。我想通过得到向量的点积来比较它们。然后我想把他们安排在画布上。我提供了你想要的答案?这个@代表什么意思?
@
。另见。