Чтобы добавить дополнение к 2D-матрице в Python, вы можете рассмотреть следующие методы:
-
Использование 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]] -
Использование понимания списка. Если вы работаете с вложенными списками вместо массивов 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]] -
Использование вложенных циклов. Другой подход — использовать вложенные циклы для перебора строк и столбцов матрицы с последующим соответствующим добавлением элементов заполнения.
Вот пример добавления заполнения к 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]]