Мне нужно хорошее решение для суммирования пар 2d векторов.
Я хочу суммировать расстояние между точкой 1 и точкой 2, точкой 2 и точкой 3 ... Так что это должно быть сделано со всеми парами (в зависимости отна количество точек)
a = np.array([[1, 1],[0, 0],[7, 9]])
permutations = [((1, 1), (0, 0), (7, 9)), ((1, 1), (7, 9), (0, 0)), ((0, 0), (1, 1), (7, 9))] ....
Теперь после создания всех возможных перестановок я хочу суммировать расстояния, чтобы указать, какой порядок в целом является кратчайшим. Чтобы получить расстояние между точками, я использую:
def calcDistance(a, b):
d = np.linalg.norm(a-b)
return d
Но я не знаю, как применить это к списку, чтобы получить расстояние для каждой пары точек. Я попытался сделать это с помощью циклов for и нарезки.
for i in range(0, len(permutations), 3):
print(permutations[i:i+3])
В качестве теста это сработало, но я понятия не имею, как применить функцию calc к каждой паре в списке и снова подвести итогполучить общее расстояние. Все перестановки хранятся в одном списке, поэтому моя идея заключалась в том, чтобы перейти к n-элементам (количеству точек / векторов) для каждой итерации.