ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python对数组进行padding

2021-11-01 09:32:43  阅读:495  来源: 互联网

标签:constant extend 填充 python padding 数组 np array


文章目录

概述

numpy.pad(array,pad_width,mode,**kwargs)
可以将数组array按指定的方法填充成指定的形状。

其中:

array:表示N维数组

pad_width:每个轴边缘填充的数值。

mode:表示填充方法。

constant:常数填充,constant_values=(x,y)表示前面用x填充,后面用y填充,无constant_values参数时默认填充0

一维数组填充

import numpy as np
array_one = np.array([1,2,3,4,5])

#(1,3):在该数组前面填充1位,后面填充3位;
extend_one1 = np.pad(array_one, (1,3))
print(extend_one1)

# constant_values=(9,8) 表示前面填充9,后面填充8
extend_one2 = np.pad(array_one, (1,3),'constant', constant_values=(9,8))
print(extend_one2)

结果
在这里插入图片描述

二维数组填充

import numpy as np
array_two = np.array([[1,1,1],[2,2,2],[3,3,3]])

"""
((1,1),(2,2))表示在二维数组array第一维(此处便是行)前面填充1行,最后面填充1行;
                 在二维数组array第二维(此处便是列)前面填充2列,最后面填充2列
constant_values=(0,4) 表示第一维填充0,第二维填充4
"""
extend_two = np.pad(array_two,((1,1),(2,2)),'constant', constant_values=(0,4)) 

print(array_two)
print(extend_two)

结果
在这里插入图片描述

三维数组填充

import numpy as np

array_three = np.ones((5,5,3)) #新建三维数组,且初始值为1
print(array_three)

extend_three = np.pad(array_three, (1,1), 'constant',constant_values=(5,9))
print(extend_three.shape)
print(extend_three)

结果
在这里插入图片描述
(7, 7, 5)
[[[5. 5. 5. 5. 9.]
[5. 5. 5. 5. 9.]
[5. 5. 5. 5. 9.]
[5. 5. 5. 5. 9.]
[5. 5. 5. 5. 9.]
[5. 5. 5. 5. 9.]
[5. 9. 9. 9. 9.]]

[[5. 5. 5. 5. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 9. 9. 9. 9.]]

[[5. 5. 5. 5. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 9. 9. 9. 9.]]

[[5. 5. 5. 5. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 9. 9. 9. 9.]]

[[5. 5. 5. 5. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 9. 9. 9. 9.]]

[[5. 5. 5. 5. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 1. 1. 1. 9.]
[5. 9. 9. 9. 9.]]

[[5. 5. 5. 5. 9.]
[5. 9. 9. 9. 9.]
[5. 9. 9. 9. 9.]
[5. 9. 9. 9. 9.]
[5. 9. 9. 9. 9.]
[5. 9. 9. 9. 9.]
[5. 9. 9. 9. 9.]]]

此外

‘edge’:边缘值填充,即使用数组array的边缘数值进行填充。

np.pad(array_three, (1,1), 'edge')

‘linear_ramp’:按照边缘递减的方式进行填充,end_values=(x,y)表示前面的第一个数值是x,前面的其他数值比x小,比array原来第一个数值要大,数组最后面填充的数值是y,y前面填充的数值比y大,比array最后一个数值要小。没有end_values时候默认填充0.

np.pad(array_three, (1,1), 'linear_ramp')

参考链接

标签:constant,extend,填充,python,padding,数组,np,array
来源: https://blog.csdn.net/rs_gis/article/details/121071912

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有