[英]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.