РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
55 of 541 menu

Функция pad

Функция pad дополняет массив NumPy значениями по краям. Она позволяет управлять тем, как именно будет расширен массив: можно заполнить отступы константами, скопировать значения с краёв, отразить их или применить другие режимы.

Синтаксис

np.pad(arr, pad_width, mode='constant', **kwargs)

Параметры функции:

  • ⁅b⁆arr⁅/b⁆ - исходный массив, который нужно дополнить
  • ⁅b⁆pad_width⁅/b⁆ - количество добавляемых значений по каждому измерению (число или кортеж)
  • ⁅b⁆mode⁅/b⁆ - режим заполнения отступов (по умолчанию 'constant')
  • ⁅b⁆kwargs⁅/b⁆ - дополнительные параметры для режимов (например, constant_values или reflect_type)

Пример

Давайте дополним одномерный массив константными значениями с обоих концов:

import numpy as np arr = np.array([1, 2, 3, 4, 5]) res = np.pad(arr, pad_width=2, mode='constant', constant_values=0) print(res)

Результат выполнения кода:

[0 0 1 2 3 4 5 0 0]

Пример

Если нужно добавить разное количество значений слева и справа, передайте кортеж из двух чисел:

import numpy as np arr = np.array([1, 2, 3, 4, 5]) res = np.pad(arr, pad_width=(3, 1), mode='constant', constant_values=9) print(res)

Результат выполнения кода:

[9 9 9 1 2 3 4 5 9]

Пример

Для двумерного массива можно указать отступы для каждой оси отдельно. Передайте кортеж кортежей, где каждый внутренний кортеж задаёт отступы с двух сторон соответствующей оси:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) res = np.pad(arr, pad_width=((1, 2), (2, 1)), mode='constant', constant_values=0) print(res)

Результат выполнения кода:

[[0 0 0 0 0 0] [0 0 1 2 3 0] [0 0 4 5 6 0] [0 0 0 0 0 0] [0 0 0 0 0 0]]

Пример

Режим 'edge' заполняет отступы значениями с краёв массива:

import numpy as np arr = np.array([10, 20, 30, 40]) res = np.pad(arr, pad_width=3, mode='edge') print(res)

Результат выполнения кода:

[10 10 10 10 20 30 40 40 40 40]

Пример

Режим 'reflect' отражает значения массива относительно края. Параметр reflect_type задаёт тип отражения: 'even' (по умолчанию) или 'odd':

import numpy as np arr = np.array([1, 2, 3, 4]) res = np.pad(arr, pad_width=3, mode='reflect', reflect_type='even') print(res)

Результат выполнения кода:

[3 2 1 1 2 3 4 4 3 2]

Пример

Режим 'wrap' циклически повторяет значения массива:

import numpy as np arr = np.array([5, 6, 7]) res = np.pad(arr, pad_width=4, mode='wrap') print(res)

Результат выполнения кода:

[6 7 5 6 5 6 7 5 6 7 5]

Смотрите также

  • функцию reshape,
    которая изменяет форму массива без изменения данных
  • функцию expand_dims,
    которая добавляет новое измерение к массиву
  • функцию tile,
    которая повторяет массив в виде плитки
  • функцию repeat,
    которая повторяет элементы массива
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить