У меня есть контрольная точка p_ref
, сохраненная в массиве numpy с формой (1024,), что-то вроде:
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]])