两个多维数组的欧几里得距离

时间:2018-07-26 14:59:38

标签: python numpy

我想在两个 numpy.ndarray 之间找到欧几里得远距离

lower_boundary = 0
upper_boundary = 1
n = 4 # dimension
sample_size = 3

np.random.seed(9001) # set the seed to yield reproducible results

X2 = np.random.uniform( low=lower_boundary, high=upper_boundary, size=(sample_size, n) )
Y2 = np.random.uniform( low=lower_boundary, high=upper_boundary, size=(sample_size, n) )

print( 'X2: ', X2 )
print( 'Y2: ', Y2 )
  1. 如何使用 np.sum np.sqrt 从头开始执行此计算,而不是从导入 euclidean_distances sklearn.metrics.pairwise

感谢所有人

1 个答案:

答案 0 :(得分:0)

欧几里得距离为D(i,j)。那么D(i,j)对应于X中的第i行和Y中的第j行之间的成对距离。在这种情况下,距离矩阵的大小将为3 x3。

final_sum=np.zeros([sample_size,sample_size])
for row_inX in range(0, sample_size):
for row_inY in range(0, sample_size):
    final_sum[row_inX][row_inY]= np.sqrt(np.sum((X2[row_inX]- Y2[row_inY])**2))
print(final_sum)