Spec-Zone.ru › NumPy 1.10

numpy.pad

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

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

Параметры:

array : массив rank 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
Массив rank 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 : misc
Любые ключевые аргументы, необходимые функции.

Примеры

>>> a = [1, 2, 3, 4, 5]
>>> np.lib.pad(a, (2,3), 'constant', constant_values=(4, 6))
array([4, 4, 1, 2, 3, 4, 5, 6, 6, 6])
>>> np.lib.pad(a, (2, 3), 'edge')
array([1, 1, 1, 2, 3, 4, 5, 5, 5, 5])
>>> np.lib.pad(a, (2, 3), 'linear_ramp', end_values=(5, -4))
array([ 5,  3,  1,  2,  3,  4,  5,  2, -1, -4])
>>> np.lib.pad(a, (2,), 'maximum')
array([5, 5, 1, 2, 3, 4, 5, 5, 5])
>>> np.lib.pad(a, (2,), 'mean')
array([3, 3, 1, 2, 3, 4, 5, 3, 3])
>>> np.lib.pad(a, (2,), 'median')
array([3, 3, 1, 2, 3, 4, 5, 3, 3])
>>> a = [[1, 2], [3, 4]]
>>> np.lib.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.lib.pad(a, (2, 3), 'reflect')
array([3, 2, 1, 2, 3, 4, 5, 4, 3, 2])
>>> np.lib.pad(a, (2, 3), 'reflect', reflect_type='odd')
array([-1,  0,  1,  2,  3,  4,  5,  6,  7,  8])
>>> np.lib.pad(a, (2, 3), 'symmetric')
array([2, 1, 1, 2, 3, 4, 5, 5, 4, 3])
>>> np.lib.pad(a, (2, 3), 'symmetric', reflect_type='odd')
array([0, 1, 1, 2, 3, 4, 5, 5, 6, 7])
>>> np.lib.pad(a, (2, 3), 'wrap')
array([4, 5, 1, 2, 3, 4, 5, 1, 2, 3])
>>> def padwithtens(vector, pad_width, iaxis, kwargs):
...     vector[:pad_width[0]] = 10
...     vector[-pad_width[1]:] = 10
...     return vector
>>> a = np.arange(6)
>>> a = a.reshape((2, 3))
>>> np.lib.pad(a, 2, padwithtens)
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]])

© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.pad.html

Spec-Zone.ru

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