Spec-Zone.ru › NumPy 1.14

numpy.pad

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

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

Параметры:

array : массив ранга N

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

pad_width : {последовательность, массив, целое число}

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

mode : строка или функция

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

‘constant’

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

‘edge’

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

‘linear_ramp’

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

‘maximum’

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

‘mean’

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

‘median’

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

‘minimum’

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

‘reflect’

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

‘symmetric’

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

‘wrap’

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

<функция>

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

stat_length : последовательность или целое число, необязательно

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

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

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

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

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

constant_values : последовательность или целое число, необязательно

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

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

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

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

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

end_values : последовательность или целое число, необязательно

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

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

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

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

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

reflect_type : {‘even’, ‘odd’}, необязательно

Используется в ‘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
Двухэлементная кортеж целых чисел, 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.14.5/reference/generated/numpy.pad.html

Spec-Zone.ru

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