【问题标题】:Iterate through an adjacency matrix with a list使用列表迭代邻接矩阵
【发布时间】:2022-01-01 12:30:42
【问题描述】:

所以我有一个 n x n 邻接矩阵,N x N NumPy 数组,其中第 i 行第 j 列是第 i 和第 j 个城市之间的距离。

我也有列表,按照我必须访问城市并将距离加在一起的特定顺序。

m = matrix
i = matrix_row
j = matrix_column

list = [1, 3, 4, 14, 26, 23...]

列表项指向行号/列号。

所以第二行第四列是:

distance = m[3][14]
d = 124.9

我想将它们添加为:

m[list[0]][list[1]] + m[list[1]][list[2]] + m[list[2]][list[3]]... and so on

我怎样才能遍历这个?

【问题讨论】:

  • sum([m[i][i+1] for i in range(...)])?

标签: python list loops matrix adjacency-matrix


【解决方案1】:

您可以按如下方式使用zipsum(或在python 3.10+ 中使用itertools.pairwise 代替zip):

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-31
    • 2020-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    相关资源
    最近更新 更多