Методы добавления заполнения в 2D-матрицу в Python

Чтобы добавить дополнение к 2D-матрице в Python, вы можете рассмотреть следующие методы:

  1. Использование NumPy. Если у вас установлен NumPy, вы можете использовать функцию numpy.pad()для добавления заполнения в матрицу. Эта функция позволяет указать величину заполнения и режим заполнения (постоянное, краевое, симметричное и т. д.).

    Вот пример добавления заполнения к 2D-матрице с помощью numpy.pad():

    import numpy as np
    
    matrix = np.array([[1, 2], [3, 4]])
    padded_matrix = np.pad(matrix, ((1, 1), (1, 1)), mode='constant')
    
    print(padded_matrix)

    Выход:

    [[0 0 0]
    [0 1 2]
    [0 3 4]
    [0 0 0]]
  2. Использование понимания списка. Если вы работаете с вложенными списками вместо массивов NumPy, вы можете использовать понимание списка, чтобы добавлять поля к каждой строке индивидуально.

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

    matrix = [[1, 2], [3, 4]]
    padding_value = 0
    padding_size = 1
    
    padded_matrix = [[padding_value] * (len(row) + 2 * padding_size)
                    for row in matrix]
    padded_matrix = [[padding_value] * padding_size + row + [padding_value] * padding_size
                    for row in padded_matrix]
    
    print(padded_matrix)

    Выход:

    [[0, 0, 0], [0, 1, 2, 0], [0, 3, 4, 0], [0, 0, 0]]
  3. Использование вложенных циклов. Другой подход — использовать вложенные циклы для перебора строк и столбцов матрицы с последующим соответствующим добавлением элементов заполнения.

    Вот пример добавления заполнения к 2D-матрице с помощью вложенных циклов:

    matrix = [[1, 2], [3, 4]]
    padding_value = 0
    padding_size = 1
    
    rows = len(matrix)
    cols = len(matrix[0])
    
    padded_matrix = [[padding_value] * (cols + 2 * padding_size) for _ in range(rows + 2 * padding_size)]
    
    for i in range(rows):
       for j in range(cols):
           padded_matrix[i + padding_size][j + padding_size] = matrix[i][j]
    
    print(padded_matrix)

    Выход:

    [[0, 0, 0], [0, 1, 2, 0], [0, 3, 4, 0], [0, 0, 0]]