繁体   English   中英

如何将 numpy 数组的每一行向量与其自身和每个元素进行比较

[英]How to compare each row of vectors of numpy array to itself and every element

我有一个包含矢量化数据的 numpy 数组。 我需要比较这些向量中的每一个(数组中的一行)欧几里得距离自身和每隔一行。

向量的形式为

[[0 0 0 ... 0 0 0]
 [0 0 0 ... 0 0 0]
 [0 0 0 ... 0 0 0]
 ...
 [0 0 0 ... 0 0 0]
 [0 0 0 ... 0 0 0]
 [0 0 0 ... 0 0 0]]

我知道我需要两个循环,这是我目前所拥有的

def euclidean_distance_loop(termdoc):
    i = 0
    j = 0
    matrix = np.array([])
    while( j < (len(termdoc-1))):
        matrix = np.append(matrix,[euclidean_distance(termdoc[i],termdoc[j])])
        j = j + 1
        
    return np.array([matrix])

euclidean_distance_loop(termdoc)

我知道这是一个索引问题,我需要另一个索引或另一个循环中的递增索引,但不知道如何构造它

你不需要循环。

def self_distance(x):
    return np.linalg.norm(x[:,np.newaxis] - x, axis=-1)

也可以看看:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM