да, выберите нужные вам индексы строк / столбцов:
A = [[0,1,4,5,3],
[1,0,2,5,4],
[4,2,0,1,5],
[1,3,1,0,3],
[3,4,5,3,0]]
rows = [2,3]
cols = [1,3]
C = [[A[i][j] for j in cols] for i in rows]
результат:
>>> C
[[2, 1], [3, 0]]
Может быть, немного лучше, потому что он избегает вычисления A[i]
, каждый раз добавляя другое понимание, просто чтобы назвать строку:
C = [[row[j] for j in cols] for row in (A[i] for i in rows)]
это базовый подход к Python. Если у вас есть большие матрицы и список индексов, я полагаю, что решение numpy
будет быстрее.