Spec-Zone.ru › NumPy 1.20

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 — сокращение для заполнения до и после = pad для всех измерений.

modestr or function, optional

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

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

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

‘edge’

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

‘linear_ramp’

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

‘maximum’

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

‘mean’

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

‘median’

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

‘minimum’

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

‘reflect’

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

‘symmetric’

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

‘wrap’

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

‘empty’

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

Введено в версии 1.17.

<функция>

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

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

Двухэлементная кортеж из целых чисел, 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–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.pad.html

Spec-Zone.ru

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