Spec-Zone.ru › NumPy 1.21

numpy.pad

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

Заполнение массива.

Параметры
arrayarray_like of rank N

Массив, который нужно заполнить.

pad_width{sequence, array_like, int}

Количество значений, добавляемых к краям каждого измерения. ((before_1, after_1), … (before_N, after_N)) — уникальная ширина заполнения для каждого измерения. ((before, after),) приводит к одинаковой ширине заполнения до и после для каждого измерения. (pad,) или int — это сокращение для before = after = ширина заполнения для всех измерений.

modestr or function, optional

Одно из следующих строковых значений или пользовательская функция.

‘constant’ (по умолчанию)

Заполнение константным значением.

‘edge’

Заполнение значениями края массива.

‘linear_ramp’

Заполнение линейным уклоном между конечным значением и значением края массива.

‘maximum’

Заполнение максимальным значением всего или части вектора по каждому измерению.

‘mean’

Заполнение средним значением всего или части вектора по каждому измерению.

‘median’

Заполнение медианным значением всего или части вектора по каждому измерению.

‘minimum’

Заполнение минимальным значением всего или части вектора по каждому измерению.

‘reflect’

Заполнение отражением вектора, зеркально отображённым по первому и последнему значениям вектора по каждому измерению.

‘symmetric’

Заполнение отражением вектора, зеркально отображённым по краю массива.

‘wrap’

Заполнение обёртыванием вектора по измерению. Первые значения используются для заполнения конца, а конечные значения — для заполнения начала.

‘empty’

Заполнение неопределёнными значениями.

Добавлена в версии 1.17.

<function>

Функция заполнения, см. Примечания.

stat_lengthsequence or int, optional

Используется в ‘maximum’, ‘mean’, ‘median’ и ‘minimum’. Количество значений на краю каждого измерения, используемых для вычисления статистического значения.

((before_1, after_1), … (before_N, after_N)) — уникальная длина статистики для каждого измерения.

((before, after),) приводит к одинаковой длине статистики до и после для каждого измерения.

(stat_length,) или int — это сокращение для before = after = длина статистики для всех измерений.

По умолчанию None, для использования всего измерения.

constant_valuessequence or scalar, optional

Используется в ‘constant’. Значения, устанавливающие заполненные значения для каждого измерения.

((before_1, after_1), ... (before_N, after_N)) уникальные константы заполнения для каждого измерения.

((before, after),) приводит к одинаковым значениям заполнения до и после для каждого измерения.

(constant,) или constant — это сокращение для before = after = constant для всех измерений.

По умолчанию 0.

end_valuessequence or scalar, optional

Используется в ‘linear_ramp’. Значения, используемые для конечного значения линейного уклона и образующие край заполненного массива.

((before_1, after_1), ... (before_N, after_N)) уникальные конечные значения для каждого измерения.

((before, after),) приводит к одинаковым конечным значениям до и после для каждого измерения.

(constant,) или constant — это сокращение для before = after = constant для всех измерений.

По умолчанию 0.

reflect_type{‘even’, ‘odd’}, optional

Используется в ‘reflect’ и ‘symmetric’. Стиль ‘even’ является стандартным с неизменным отражением вокруг значения края. Для стиля ‘odd’ расширенная часть массива создаётся путем вычитания отражённых значений из двухкратного значения края.

Возвращает
padndarray

Заполненный массив ранга, равного array с увеличенным размером в соответствии с pad_width.

Примечания

Добавлена в версии 1.7.0.

Для массива с рангом больше 1 часть заполнения последующих измерений рассчитывается из заполнения предыдущих измерений. Это проще всего понять на примере массива ранга 2, где углы заполненного массива рассчитываются с использованием значений, заполненных из первого измерения.

Функция заполнения, если используется, должна изменять массив ранга 1 на месте. Она имеет следующий синтаксис:

padding_func(vector, iaxis_pad_width, iaxis, kwargs)

где

vectorndarray

Массив ранга 1, уже заполненный нулями. Заполненные значения — vector[:iaxis_pad_width[0]] и vector[-iaxis_pad_width[1]:].

iaxis_pad_widthtuple

Кортеж из 2 целых чисел, iaxis_pad_width[0] представляет количество значений, заполняемых в начале vector, а iaxis_pad_width[1] — количество значений, заполняемых в конце vector.

iaxisint

Измерение, которое в данный момент рассчитывается.

kwargsdict

Любые необходимые ключевые аргументы функции.

Примеры

>>> a = [1, 2, 3, 4, 5]
>>> np.pad(a, (2, 3), 'constant', constant_values=(4, 6))
array([4, 4, 1, ..., 6, 6, 6])
>>> np.pad(a, (2, 3), 'edge')
array([1, 1, 1, ..., 5, 5, 5])
>>> np.pad(a, (2, 3), 'linear_ramp', end_values=(5, -4))
array([ 5,  3,  1,  2,  3,  4,  5,  2, -1, -4])
>>> np.pad(a, (2,), 'maximum')
array([5, 5, 1, 2, 3, 4, 5, 5, 5])
>>> np.pad(a, (2,), 'mean')
array([3, 3, 1, 2, 3, 4, 5, 3, 3])
>>> np.pad(a, (2,), 'median')
array([3, 3, 1, 2, 3, 4, 5, 3, 3])
>>> a = [[1, 2], [3, 4]]
>>> np.pad(a, ((3, 2), (2, 3)), 'minimum')
array([[1, 1, 1, 2, 1, 1, 1],
       [1, 1, 1, 2, 1, 1, 1],
       [1, 1, 1, 2, 1, 1, 1],
       [1, 1, 1, 2, 1, 1, 1],
       [3, 3, 3, 4, 3, 3, 3],
       [1, 1, 1, 2, 1, 1, 1],
       [1, 1, 1, 2, 1, 1, 1]])
>>> a = [1, 2, 3, 4, 5]
>>> np.pad(a, (2, 3), 'reflect')
array([3, 2, 1, 2, 3, 4, 5, 4, 3, 2])
>>> np.pad(a, (2, 3), 'reflect', reflect_type='odd')
array([-1,  0,  1,  2,  3,  4,  5,  6,  7,  8])
>>> np.pad(a, (2, 3), 'symmetric')
array([2, 1, 1, 2, 3, 4, 5, 5, 4, 3])
>>> np.pad(a, (2, 3), 'symmetric', reflect_type='odd')
array([0, 1, 1, 2, 3, 4, 5, 5, 6, 7])
>>> np.pad(a, (2, 3), 'wrap')
array([4, 5, 1, 2, 3, 4, 5, 1, 2, 3])
>>> def pad_with(vector, pad_width, iaxis, kwargs):
...     pad_value = kwargs.get('padder', 10)
...     vector[:pad_width[0]] = pad_value
...     vector[-pad_width[1]:] = pad_value
>>> a = np.arange(6)
>>> a = a.reshape((2, 3))
>>> np.pad(a, 2, pad_with)
array([[10, 10, 10, 10, 10, 10, 10],
       [10, 10, 10, 10, 10, 10, 10],
       [10, 10,  0,  1,  2, 10, 10],
       [10, 10,  3,  4,  5, 10, 10],
       [10, 10, 10, 10, 10, 10, 10],
       [10, 10, 10, 10, 10, 10, 10]])
>>> np.pad(a, 2, pad_with, padder=100)
array([[100, 100, 100, 100, 100, 100, 100],
       [100, 100, 100, 100, 100, 100, 100],
       [100, 100,   0,   1,   2, 100, 100],
       [100, 100,   3,   4,   5, 100, 100],
       [100, 100, 100, 100, 100, 100, 100],
       [100, 100, 100, 100, 100, 100, 100]])

© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.pad.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API