Spec-Zone.ru › NumPy 1.18

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’. Стиль «чётный» — по умолчанию, с неизменным отражением вокруг значения края. Для стиля «нечётный» расширенная часть массива создаётся путём вычитания отражённых значений из удвоенного значения края.

Возвращает
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] представляет количество значений, заполняемых в начале вектора, а iaxis_pad_width[1] — количество значений, заполняемых в конце вектора.

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

Spec-Zone.ru

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