Вы можете выполнить пользовательскую сортировку, выполнив что-то вроде этого, предполагая, что вы используете numpy:
import numpy as np
def euclidian_distance(a, b):
return np.linalg.norm(a - b)
coords = np.array([[1,2],
[2,1],
[1,3],
[1,9],
[6,9],
[3,5],
[6,8],
[4,5],
[7,9]])
coords = sorted(coords, key=lambda point: euclidian_distance(point, coords[0]))
print(np.matrix(coords)) # matrix is only for formatting for readability purposes
Вывод:
[[1 2]
[1 3]
[2 1]
[3 5]
[4 5]
[1 9]
[6 8]
[6 9]
[7 9]]
Комуобъясните, почему вышеприведенный вывод отличается от ОП.Это потому, что пример вывода OP фактически не упорядочен по расстоянию, как они описали, что они хотели.