Освоение манипуляций с матрицами: раздражение в лабиринте массивов

Метод 1: перебор строк за строками
Один простой подход — перебирать матрицу построчно. Этот метод особенно полезен, когда вам нужно выполнить операции, которые зависят от значений в определенной строке. Вот фрагмент кода Python, демонстрирующий этот метод:

matrix = [[1, 2, 3],
          [4, 5, 6],
          [7, 8, 9]]
for row in matrix:
    for element in row:
        # Do something with the element
        print(element)

Метод 2: перебор столбца за столбцом
Подобно предыдущему методу, вы также можете перебирать матрицу столбец за столбцом. Этот метод пригодится, если вы хотите выполнить операции, основанные на значениях в определенном столбце. Вот пример на Python:

matrix = [[1, 2, 3],
          [4, 5, 6],
          [7, 8, 9]]
for column_idx in range(len(matrix[0])):
    for row_idx in range(len(matrix)):
        element = matrix[row_idx][column_idx]
        # Do something with the element
        print(element)

Метод 3: итерация по диагонали
Иногда вам может потребоваться пройти матрицу по диагонали. Это полезно, например, при работе с симметричными матрицами или операциями, специфичными для диагонали. Давайте взглянем на простой фрагмент кода на Python:

matrix = [[1, 2, 3],
          [4, 5, 6],
          [7, 8, 9]]
num_rows = len(matrix)
num_columns = len(matrix[0])
for offset in range(num_columns + num_rows - 1):
    for row_idx in range(max(0, offset - num_columns + 1), min(offset + 1, num_rows)):
        column_idx = offset - row_idx
        element = matrix[row_idx][column_idx]
        # Do something with the element
        print(element)

Метод 4: использование NumPy и широковещание
Если вы работаете с Python и вам необходимо эффективно выполнять сложные матричные операции, библиотека NumPy станет мощным союзником. NumPy предоставляет широкий набор функций и методов для манипулирования матрицами. Например:

import numpy as np
matrix = np.array([[1, 2, 3],
                   [4, 5, 6],
                   [7, 8, 9]])
# Perform element-wise addition
result = matrix + 10
print(result)