NumPy教程-numpy.pad()在Python中的使用
NumPy教程-numpy.pad()在Python中的使用
gh_1d7504e4dee1
回复:python,领取Python面试题。分享Python教程,Python架构师教程,Python爬虫,Python编程视频,Python脚本,Pycharm教程,Python微服务架构,Python分布式架构,Pycharm注册码。
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’风格创建数组的扩展部分。
资源分享
返回值:
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中的使用 -
大厂员工为什么去哪儿都戴工牌?
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26