numpy.pad()

Функция numpy.pad() добавляет «поля» вокруг массива по каждой оси. Это базовая операция для свёртки изображений, обработки сигнала и выравнивания окон.

Сигнатура

numpy.pad(array, pad_width, mode='constant', **kwargs)

Параметры

  • array — входной массив.

  • pad_width — число элементов добавляемых полей (число, кортеж или список кортежей).

  • mode — стратегия заполнения: 'constant', 'edge', 'reflect', 'symmetric', 'wrap' и другие.

  • **kwargs — параметры мода (например, constant_values=0).

Возвращает

ndarray увеличенного размера.

Пример 1. Поля с нулями

import numpy as np

a = np.array([1, 2, 3])
print(np.pad(a, 2))
[0 0 1 2 3 0 0]

Пример 2. Константа -1

import numpy as np

a = np.array([1, 2, 3])
print(np.pad(a, (1, 3), constant_values=-1))
[-1  1  2  3 -1 -1 -1]

Кортеж (1, 3) — 1 элемент слева, 3 справа.

Пример 3. Режим edge — повтор краевых значений

import numpy as np

a = np.array([1, 2, 3, 4])
print(np.pad(a, 2, mode='edge'))
[1 1 1 2 3 4 4 4]

Пример 4. Поля у изображения 2×2

import numpy as np

img = np.array([[5, 6],
                [7, 8]])
print(np.pad(img, 1, mode='constant'))
[[0 0 0 0]
 [0 5 6 0]
 [0 7 8 0]
 [0 0 0 0]]

Пример 5. Reflect для скользящего окна сигнала

import numpy as np

signal = np.array([10, 20, 30, 40, 50])
print(np.pad(signal, 2, mode='reflect'))
[30 20 10 20 30 40 50 40 30]

Подходит, когда нужно избежать «обрезков» при обработке края сигнала.

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации NumPy (https://numpy.org/doc/stable/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.