【发布时间】:2018-11-13 01:21:05
【问题描述】:
我正在尝试计算欧几里德距离的矢量化实现(在 X 和 Y 中的每个元素之间使用内积)。数据如下:
X = np.random.uniform(low=0, high=1, size=(10000, 5))
Y = np.random.uniform(low=0, high=1, size=(10000, 5))
我所做的是:
euclidean_distances_vectorized = np.array(np.sqrt(np.sum(X**2, axis=1) - 2 * np.dot(X, Y.T) + np.sum(Y**2, axis=1)))
虽然这给出了“一些输出”,但答案是错误的,因为每行仍然包含 5 个元素。
有谁知道我做错了什么?
【问题讨论】:
-
scipy.spatial.distance_matrix? -
@YakymPirozhenko,你是什么意思?
-
@feijao
scipy具有以矢量化方式计算两个数组之间的成对欧几里得距离的函数。
标签: python numpy vectorization euclidean-distance