python - 计算数组之间的距离
问题描述
我正在以向量化的方式计算我的 X 个数据点和我存储它们的索引的质心向量之间的欧几里得距离,我的问题是我正在返回一个更高维度的质心之间所有距离的矩阵。我想做的只是使用numpy返回一个向量,其中包含X和质心之间最近质心的所有距离,而不使用外部库。
预期的输出将是 X 和质心之间所有距离的向量距离,其中distance
可变大小为X.shape[0]
解决方案
我不知道您是否已经找到了解决方案,但有趣的是:
X = np.random.uniform(low=-0.2451, high=8.2, size=(300, 2))
centroids = np.array([[4,6],[5,8],[4,9]])
distances = np.array([np.linalg.norm(x-centroids, axis=1) for x in X])
nearest_dists = distances[np.arange(len(distances)), distances.argmin(axis=1)]
所以nearest_dists
你有样本和它们最近的质心之间的欧几里得距离。如果您还对离每个样本最近的质心感兴趣,答案是从 indices 给出的,这就是我使用不同变量名的原因。distanes.argmin(axis=1)
推荐阅读
- returnn - 你如何提取模型中使用的初始权重?
- php - Facebook 动态 og:image 使用 PHP
- windows - 使用 CMake 在 Visual Studio 中构建 ARM64 ASM
- sql-server - 如何使用 ODBC 将 Access 2013 数据库连接到 SQL Server(链接表)?
- c# - Screen.PrimaryScreen.Bounds.Width,Height,Size 错误
- java - (Java) 如何在不按“回车”键的情况下获取用户输入
- python - Numpy:沿轴应用具有不同索引的输入数组
- javascript - 将文本从 html 附加到不同的部分
- asp.net - 使用 Newtonsoft Jschema,如何验证基于抽象类的派生类属性?
- sql-server - 在数据库中搜索具有特定值的所有列名