【发布时间】:2020-08-05 22:25:20
【问题描述】:
我有一个参考点p_ref 存储在一个形状为 (1024,) 的 numpy 数组中,类似于:
print(p_ref)
>>> array([ p1, p2, p3, ..., p_n])
我还有一个 numpy 数组 A_points,其形状为 (1024,5000),包含 5000 个点,每个点有 1024 个维度,如 p_ref。我的问题:我想将A_points 中的点按它们到p_ref 的(欧几里德)距离排序!
我该怎么做?我读到了scipy.spatial.distance.cdist 和scipy.spatial.KDTree,但它们都没有完全按照我的意愿去做,当我试图将它们结合起来时,我弄得一团糟。谢谢!
为了参考和一致性,我们假设:
p_ref = np.array([0,1,2,3])
A_points = np.reshape(np.array([10,3,2,13,4,5,16,3,8,19,4,11]), (4,3))
预期输出:
array([[ 3, 2, 10],
[ 4, 5, 13],
[ 3, 8, 16],
[ 4, 11, 19]])
【问题讨论】:
-
你还能为玩具示例添加预期的输出吗?我会假设输出只是
A_points的不同行顺序。 -
@Divakar 当然,我添加了它:)
标签: python numpy sorting multidimensional-array distance