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’. Стиль ‘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
-
Кортеж из 2 целых чисел, 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–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.pad.html