原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.pad.html
校对:(虚位以待)
numpy.
pad
(array, pad_width, mode, **kwargs)[source]填充数组。
参数: | 数组:array_like的秩为N
pad_width:{sequence,array_like,int}
模式:str或函数
stat_length:sequence或int,可选
constant_values:sequence或int,可选
end_values:sequence或int,可选
reflect_type:{'even','odd'},可选
|
---|---|
返回: | pad:ndarray
|
笔记
版本1.7.0中的新功能。
对于秩大于1的数组,稍后轴的一些填充从前一个轴的填充计算。这是最容易想到的2数组,其中填充数组的角通过使用从第一轴的填充值计算。
如果使用填充函数,则应该返回等于1的长度等于向量参数的填充函数。它有以下签名:
padding_func(vector, iaxis_pad_width, iaxis, **kwargs)
哪里
- 向量
: ndarray- 已用零填充的排名1数组。填充值是vector [:pad_tuple [0]]和vector [-pad_tuple [1]:]。
- iaxis_pad_width
: 元组- int的2元组,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]])