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)) уникальные длины статистических значений для каждой оси.
((перед, после),) задаёт одинаковые длины статистических значений перед и после для каждой оси.
(stat_length,) или целое число — это сокращение для перед = после = длина статистического значения для всех осей.
По умолчанию
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 часть заполнения последующих осей рассчитывается по части заполнения предыдущих осей. Это легче всего представить себе на примере двумерного массива, где углы заполненного массива рассчитываются с использованием значений, заполненных по первой оси.
Функция заполнения, если используется, должна возвращать одномерный массив, равный по длине аргументу вектора, со значениями, заполненными вместо них. Она имеет следующий синтаксис:
padding_func(vector, iaxis_pad_width, iaxis, **kwargs)
где
-
vector : ndarray - Одномерный массив, уже заполненный нулями. Заполненные значения — vector[:pad_tuple[0]] и vector[-pad_tuple[1]:].
-
iaxis_pad_width : tuple - Двухэлементная кортеж из целых чисел, iaxis_pad_width[0] представляет число значений, заполняемых в начале вектора, где iaxis_pad_width[1] представляет число значений, заполняемых в конце вектора.
-
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–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.pad.html