numpy.pad#

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

Pad an array.

Parameters:
arrayarray_like of rank N

The array to pad.

pad_width{sequence, array_like, int}

Number of values padded to the edges of each axis.((before_1,after_1),...(before_N,after_N)) unique pad widthsfor each axis.(before,after) or((before,after),) yields same beforeand after pad for each axis.(pad,) orint is a shortcut for before = after = pad widthfor all axes.

modestr or function, optional

One of the following string values or a user supplied function.

‘constant’ (default)

Pads with a constant value.

‘edge’

Pads with the edge values of array.

‘linear_ramp’

Pads with the linear ramp between end_value and thearray edge value.

‘maximum’

Pads with the maximum value of all or part of thevector along each axis.

‘mean’

Pads with the mean value of all or part of thevector along each axis.

‘median’

Pads with the median value of all or part of thevector along each axis.

‘minimum’

Pads with the minimum value of all or part of thevector along each axis.

‘reflect’

Pads with the reflection of the vector mirrored onthe first and last values of the vector along eachaxis.

‘symmetric’

Pads with the reflection of the vector mirroredalong the edge of the array.

‘wrap’

Pads with the wrap of the vector along the axis.The first values are used to pad the end and theend values are used to pad the beginning.

‘empty’

Pads with undefined values.

<function>

Padding function, see Notes.

stat_lengthsequence or int, optional

Used in ‘maximum’, ‘mean’, ‘median’, and ‘minimum’. Number ofvalues at edge of each axis used to calculate the statistic value.

((before_1,after_1),...(before_N,after_N)) unique statisticlengths for each axis.

(before,after) or((before,after),) yields same beforeand after statistic lengths for each axis.

(stat_length,) orint is a shortcut forbefore=after=statistic length for all axes.

Default isNone, to use the entire axis.

constant_valuessequence or scalar, optional

Used in ‘constant’. The values to set the padded values for eachaxis.

((before_1,after_1),...(before_N,after_N)) unique pad constantsfor each axis.

(before,after) or((before,after),) yields same beforeand after constants for each axis.

(constant,) orconstant is a shortcut forbefore=after=constant for all axes.

Default is 0.

end_valuessequence or scalar, optional

Used in ‘linear_ramp’. The values used for the ending value of thelinear_ramp and that will form the edge of the padded array.

((before_1,after_1),...(before_N,after_N)) unique end valuesfor each axis.

(before,after) or((before,after),) yields same beforeand after end values for each axis.

(constant,) orconstant is a shortcut forbefore=after=constant for all axes.

Default is 0.

reflect_type{‘even’, ‘odd’}, optional

Used in ‘reflect’, and ‘symmetric’. The ‘even’ style is thedefault with an unaltered reflection around the edge value. Forthe ‘odd’ style, the extended part of the array is created bysubtracting the reflected values from two times the edge value.

Returns:
padndarray

Padded array of rank equal toarray with shape increasedaccording topad_width.

Notes

For an array with rank greater than 1, some of the padding of lateraxes is calculated from padding of previous axes. This is easiest tothink about with a rank 2 array where the corners of the padded arrayare calculated by using padded values from the first axis.

The padding function, if used, should modify a rank 1 array in-place. Ithas the following signature:

padding_func(vector,iaxis_pad_width,iaxis,kwargs)

where

vectorndarray

A rank 1 array already padded with zeros. Padded values arevector[:iaxis_pad_width[0]] and vector[-iaxis_pad_width[1]:].

iaxis_pad_widthtuple

A 2-tuple of ints, iaxis_pad_width[0] represents the number ofvalues padded at the beginning of vector whereiaxis_pad_width[1] represents the number of values padded atthe end of vector.

iaxisint

The axis currently being calculated.

kwargsdict

Any keyword arguments the function requires.

Examples

>>>importnumpyasnp>>>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])
>>>defpad_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]])
On this page