首页 > 行业资讯 > NumPy教程-numpy.pad()在Python中的使用

NumPy教程-numpy.pad()在Python中的使用

时间:2023-10-24 来源: 浏览:

NumPy教程-numpy.pad()在Python中的使用

点击关注 Python架构师
Python架构师

gh_1d7504e4dee1

回复:python,领取Python面试题。分享Python教程,Python架构师教程,Python爬虫,Python编程视频,Python脚本,Pycharm教程,Python微服务架构,Python分布式架构,Pycharm注册码。

收录于合集
#NumPy教程 43
#numpy 43
#NumPy 43
#python web教程 103
#python教程 191
整理: python架构师

Python的numpy模块提供了一个名为numpy.pad()的函数,用于在数组中执行填充。这个函数有几个必需和可选的参数。

语法:

numpy.pad( array , pad_width, mode= ’constant’ , **kwargs)

参数:

array: array_like

这是我们想要填充的源数组。

pad_width: int、sequence或array_like

这个参数定义了要填充到每个轴的边缘的值的数量。每个轴的唯一的填充宽度被定义为(before_1, after_1),(before_2, after_2),... (before_N, after_N)。对于每个轴,((before, after),)会被视为与before和after pad相同。对于所有轴,int或(pad,)是before = after = pad width的快捷方式。

mode: str或function(可选)

这个参数有以下字符串值之一:

’constant’(默认)

如果我们将一个常数值分配给mode参数,将使用常数值进行填充。

’edge’

这是数组的边缘值。将使用这个边缘值进行填充。

’linear_ramp’

这个值用于使用边缘值和结束值之间的线性斜坡进行填充。

’maximum’

这个参数值通过使用矢量部分或全部的最大值来进行填充,沿每个轴。

’mean’

这个参数值通过使用矢量部分或全部的平均值来进行填充,沿每个轴。

’median’

这个参数值通过使用矢量部分或全部的中位数来进行填充,沿每个轴。

’minimum’

这个参数值通过使用矢量部分或全部的最小值来进行填充,沿每个轴。

’reflect’

这个值通过矢量反射来进行填充,即在每个轴上镜像开始和结束的矢量值。

’symmetric’

这个值通过矢量反射来进行填充,即沿数组边缘镜像。

’wrap’

这个值通过矢量在轴上的循环来进行填充。起始值用于填充结束,结束值填充开头。

’empty’

这个值用于用未定义的值进行填充数组。

stat_length: int或sequence(可选)

这个参数用于’maximum’、’minimum’、’mean’、’median’。它定义了用于计算静态值的每个边轴的值数量。

constant_values: 标量或sequence(可选)

这个参数用于’constant’。它定义了将填充值设置为每个轴的值。

end_values: 标量或sequence(可选)

这个参数用于’linear_ramp’。它定义了用于线性斜坡的最后一个值,将形成填充数组的边缘。

reflect_type: even或odd(可选)

这个参数用于’symmetric’和’reflect’。默认情况下,reflect_type为’even’,在边缘值周围进行未更改的反射。通过从两倍边缘值中减去反射值,可以为’odd’风格创建数组的扩展部分。

资源分享

点击领取:最全Python资料合集

返回值:

pad: ndarray

这个函数返回形状与数组相等的秩的填充数组,其形状根据pad_width增加。

示例1:

import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), ’constant’, constant_values=(6, 4)) y

输出:

array ([ 6 , 6 , 6 , 1 , 3 , 2 , 5 , 4 , 4 , 4 ])

在上面的代码中:

  • 我们导入了别名为np的numpy。

  • 我们创建了一个值列表x。

  • 我们声明了变量y,并将np.pad()函数的返回值赋值给它。

  • 我们在函数中传递了列表x,pad_width,将mode设置为constant,并在函数中传递了constant_values。

  • 最后,我们尝试打印变量y。

输出显示了一个填充了指定大小和值的ndarray。

示例2:

import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), ’edge’) y

输出:

array ([ 1 , 1 , 1 , 1 , 3 , 2 , 5 , 4 , 4 , 4 ])

示例3:

import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), ’linear_ramp’, end_values=(-4, 5)) y

输出:

array ([ -4 , -2 , 0 , 1 , 3 , 2 , 5 , 4 , 4 , 5 ])

示例4:

import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), ’maximum’) y

输出:

array ([ 5 , 5 , 5 , 1 , 3 , 2 , 5 , 4 , 5 , 5 , 5 ])

示例5:

import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), ’mean’) y

输出:

array ([ 3 , 3 , 3 , 1 , 3 , 2 , 5 , 4 , 3 , 3 , 3 ])

示例6:

import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), ’median’) y

输出:

array ([ 3 , 3 , 3 , 1 , 3 , 2 , 5 , 4 , 3 , 3 , 3 ])

示例7:

import numpy as np a = [[1, 2], [3, 4]] y = np.pad(x, (3,), ’minimum’) y

输出:

array ( [[1, 1, 1, 1, 2, 1, 1] , [1, 1, 1, 1, 2, 1, 1] , [1, 1, 1, 1, 2, 1, 1] , [3, 3, 3, 3, 4, 3, 3] , [1, 1, 1, 1, 2, 1, 1] , [1, 1, 1, 1, 2, 1, 1] , [1, 1, 1, 1, 2, 1, 1] ])

示例8:

import numpy as np def pad_with(vector, pad_width, iaxis, kwargs): padding_value = kwargs.get(’padder’, 10) vector[ : pad_width[0]] = padding_value vector[-pad_width[1] : ] = padding_value x = np.arange(6) x = x.reshape((3, 2)) y = np.pad(x, 3, pad_with) y

输出:

array ([ 41 , 31 , 21 , 11 , 21 , 31 , 41 , 51 , 41 , 31 ])

在上面的代码中:

  • 我们导入了别名为np的numpy。

  • 我们创建了一个名为pad_with的函数,参数为vector、pad_width、iaxis和kwargs。

  • 我们声明了变量pad_value,以从get()函数获取填充值。

  • 我们将填充值传递给向量的部分。

  • 我们使用np.arange()函数创建一个数组x,并使用reshape()函数改变了形状。

  • 我们声明了一个变量y,并将np.pad()函数的返回值赋值给它。

  • 我们在函数中传递了列表x和pad_width。

  • 最后,我们尝试打印变量y。

输出显示了一个填充了指定大小和值的ndarray。

示例9:

import numpy as np import numpy as np def pad_with (vector, pad_width, iaxis, kwargs) : padding_value = kwargs.get( ’padder’ , 10 ) vector[:pad_width[ 0 ]] = padding_value vector[-pad_width[ 1 ]:] = padding_value x = np.arange( 6 ) x = x.reshape(( 3 , 2 )) np.pad(x, 3 , pad_with)

输出:

array ( [[10, 10, 10, 10, 10, 10, 10, 10] , [10, 10, 10, 10, 10, 10, 10, 10] , [10, 10, 10, 10, 10, 10, 10, 10] , [10, 10, 10, 0, 1, 10, 10, 10] , [10, 10, 10, 2, 3, 10, 10, 10] , [10, 10, 10, 4, 5, 10, 10, 10] , [10, 10, 10, 10, 10, 10, 10, 10] , [10, 10, 10, 10, 10, 10, 10, 10] , [10, 10, 10, 10, 10, 10, 10, 10] ])

示例10:

import numpy as np import numpy as np 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 x = np.arange( 6 ) x = x.reshape(( 3 , 2 )) np.pad(x, 3 , pad_with, padder= 100 )

输出:

array ( [[100, 100, 100, 100, 100, 100, 100, 100] , [100, 100, 100, 100, 100, 100, 100, 100] , [100, 100, 100, 100, 100, 100, 100, 100] , [100, 100, 100, 0, 1, 100, 100, 100] , [100, 100, 100, 2, 3, 100, 100, 100] , [100, 100, 100, 4, 5, 100, 100, 100] , [100, 100, 100, 100, 100, 100, 100, 100] , [100, 100, 100, 100, 100, 100, 100, 100] , [100, 100, 100, 100, 100, 100, 100, 100] ])

 

热门推荐
  • 技术岗面试就问这?我笑喷了。。。
  • NumPy教程-numpy.average()在Python中的使用
  • 大厂员工为什么去哪儿都戴工牌?

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐