Spec-Zone.ru › NumPy 1.17

numpy.pad

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

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

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

Массив для заполнения.

pad_width : {sequence, array_like, int}

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

mode : str or function, optional

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

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

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

‘edge’

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

‘linear_ramp’

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

‘maximum’

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

‘mean’

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

‘median’

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

‘minimum’

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

‘reflect’

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

‘symmetric’

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

‘wrap’

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

‘empty’

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

Новое в версии 1.17.

<function>

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

stat_length : sequence or int, optional

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

((before_1, after_1), … (before_N, after_N)) — уникальная длина статистики для каждой оси.

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

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

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

constant_values : sequence or scalar, optional

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

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

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

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

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

end_values : sequence 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’ расширенная часть массива создаётся путём вычитания отражённых значений из двухкратного значения края.

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

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

Примечания

Новое в версии 1.7.0.

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

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

padding_func(vector, iaxis_pad_width, iaxis, kwargs)

где

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

Примеры

>>> 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–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.17.0/reference/generated/numpy.pad.html

Spec-Zone.ru

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