Spec-Zone.ru › NumPy 1.16

numpy.pad

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

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

Параметры:
array : array_like of rank N

Входной массив

pad_width : {sequence, array_like, int}

Количество значений, добавляемых к границам каждого измерения. ((перед_1, после_1), … (перед_N, после_N)) уникальная ширина заполнения для каждого измерения. ((перед, после),) даёт одинаковую ширину заполнения перед и после для каждого измерения. (заполнение,) или целое число — сокращённая запись для перед = после = ширина заполнения для всех измерений.

mode : str or function

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

‘constant’

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

‘edge’

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

‘linear_ramp’

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

‘maximum’

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

‘mean’

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

‘median’

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

‘minimum’

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

‘reflect’

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

‘symmetric’

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

‘wrap’

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

<функция>

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

stat_length : sequence or int, optional

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

((перед_1, после_1), … (перед_N, после_N)) уникальная длина статистики для каждого измерения.

((перед, после),) даёт одинаковую длину статистики перед и после для каждого измерения.

(длина_статистики,) или целое число — сокращённая запись для перед = после = длина статистики для всех измерений.

По умолчанию None, чтобы использовать всё измерение.

constant_values : sequence or int, optional

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

((перед_1, после_1), … (перед_N, после_N)) уникальные константы заполнения для каждого измерения.

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

(константа,) или целое число — сокращённая запись для перед = после = константа для всех измерений.

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

end_values : sequence or int, optional

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

((перед_1, после_1), … (перед_N, после_N)) уникальные конечные значения для каждого измерения.

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

(константа,) или целое число — сокращённая запись для перед = после = конечное значение для всех измерений.

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

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

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

Возвращает:
pad : ndarray

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

Примечания

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

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

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

padding_func(vector, iaxis_pad_width, iaxis, kwargs)

где

vector : ndarray
Массив ранга 1, уже заполненный нулями. Заполненные значения — vector[:pad_tuple[0]] и vector[-pad_tuple[1]:].
iaxis_pad_width : tuple
2-кортеж целых чисел, iaxis_pad_width[0] представляет количество значений, заполненных в начале vector, а iaxis_pad_width[1] — количество значений, заполненных в конце vector.
iaxis : int
Измерение, которое в данный момент вычисляется.
kwargs : dict
Любые ключевые аргументы, которые требует функция.

Примеры

>>> a = [1, 2, 3, 4, 5]
>>> np.pad(a, (2,3), 'constant', constant_values=(4, 6))
array([4, 4, 1, 2, 3, 4, 5, 6, 6, 6])
>>> np.pad(a, (2, 3), 'edge')
array([1, 1, 1, 2, 3, 4, 5, 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
...     return vector
>>> 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–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.16.1/reference/generated/numpy.pad.html

Spec-Zone.ru

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