So I have a n x n adjacency matrix, N x N NumPy array, where the i-th row and the j-th column is the distance between the i-th and j-th cities.
I also have list, in a specific order in which I have to visit the cities and and add the distances together.
m = matrix i = matrix_row j = matrix_column list = [1, 3, 4, 14, 26, 23...]
The list items are pointing to row/column numbers.
So the 2nd row 4th col is:
distance = m d = 124.9
and I would like to add them as:
m[list][list] + m[list][list] + m[list][list]... and so on
How can I iterate through this?
You can use
sum as follows (or
itertools.pairwise instead of
zip in python 3.10+):
import numpy as np m = np.reshape(range(9), (3, 3)) # an example matrix print(m) # [[0 1 2] # [3 4 5] # [6 7 8]] lst = [0, 2, 1, 0] total_dist = sum(m[i][j] for i, j in zip(lst, lst[1:])) print(total_dist) # 12