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.