np.pad()详解
代码示例:
# pad()函数使用示例
def testPad():"""np.pad()用来在numpy数组的边缘进行数值填充,例如CNN网络常用的padding操作np.pad(array,pad_width,mode,**kwargs) # 返回填充后的numpy数组参数:array:要填充的numpy数组【要对谁进行填充】pad_width:每个轴要填充的数据的数目【每个维度前、后各要填充多少个数据】mode:填充的方式【采用哪种方式填充】"""a = np.arange(1, 7).reshape(2, 3)print("================a=================")print(a)b = np.pad(a, ((2, 4), (3, 5)), "constant")c = np.pad(a, ((2, 4))) # 表示两个维度都按照同样的方式填充d = np.pad(a, 2) # 表示前后填充的数值个数相同e = np.pad(a, 2, "constant", constant_values=(8, 9))print("================b=================")print(b.shape) # (8, 11)print(b)print("================c=================")print(c.shape)print(c)print("================d=================")print(d.shape)print(d)print("================e=================")print(e.shape)print(e)
运行结果:
================a=================
[[1 2 3][4 5 6]]
================b=================
(8, 11)
[[0 0 0 0 0 0 0 0 0 0 0][0 0 0 0 0 0 0 0 0 0 0][0 0 0 1 2 3 0 0 0 0 0][0 0 0 4 5 6 0 0 0 0 0][0 0 0 0 0 0 0 0 0 0 0][0 0 0 0 0 0 0 0 0 0 0][0 0 0 0 0 0 0 0 0 0 0][0 0 0 0 0 0 0 0 0 0 0]]
================c=================
(8, 9)
[[0 0 0 0 0 0 0 0 0][0 0 0 0 0 0 0 0 0][0 0 1 2 3 0 0 0 0][0 0 4 5 6 0 0 0 0][0 0 0 0 0 0 0 0 0][0 0 0 0 0 0 0 0 0][0 0 0 0 0 0 0 0 0][0 0 0 0 0 0 0 0 0]]
================d=================
(6, 7)
[[0 0 0 0 0 0 0][0 0 0 0 0 0 0][0 0 1 2 3 0 0][0 0 4 5 6 0 0][0 0 0 0 0 0 0][0 0 0 0 0 0 0]]
================e=================
(6, 7)
[[8 8 8 8 8 9 9][8 8 8 8 8 9 9][8 8 1 2 3 9 9][8 8 4 5 6 9 9][8 8 9 9 9 9 9][8 8 9 9 9 9 9]]
5.代码测试
import numpy as np# 测试一维数组
a = np.array([1, 2, 3, 4, 5])b = np.pad(a, 2, 'constant')
print("b = ", b)c = np.pad(a, (2, 4), 'constant')
print("c = ", c)# 测试二维数组
aa = np.arange(6).reshape(2, 3)
print("aa = \n", aa)bb = np.pad(aa, (2, 4), 'constant')
print("bb = \n", bb)cc = np.pad(aa, ((2, 4), (3, 5)), 'constant')
print("cc = \n", cc)# 测试三维数组
aaa = np.arange(24).reshape(2, 3, 4)
print("aaa = \n", aaa)np.set_printoptions(threshold=np.inf) # 将numpy数组完全展开
bbb = np.pad(aaa, ((2, 3), (4, 5), (6, 7)), 'constant')# 块上加了2/3,列上加了4/5,行上加了6/7
print("bbb = \n", bbb)
运行结果如下:
b = [0 0 1 2 3 4 5 0 0]
c = [0 0 1 2 3 4 5 0 0 0 0]
aa = [[0 1 2][3 4 5]]
bb = [[0 0 0 0 0 0 0 0 0][0 0 0 0 0 0 0 0 0][0 0 0 1 2 0 0 0 0][0 0 3 4 5 0 0 0 0][0 0 0 0 0 0 0 0 0][0 0 0 0 0 0 0 0 0][0 0 0 0 0 0 0 0 0][0 0 0 0 0 0 0 0 0]]
cc = [[0 0 0 0 0 0 0 0 0 0 0][0 0 0 0 0 0 0 0 0 0 0][0 0 0 0 1 2 0 0 0 0 0][0 0 0 3 4 5 0 0 0 0 0][0 0 0 0 0 0 0 0 0 0 0][0 0 0 0 0 0 0 0 0 0 0][0 0 0 0 0 0 0 0 0 0 0][0 0 0 0 0 0 0 0 0 0 0]]
aaa = [[[ 0 1 2 3][ 4 5 6 7][ 8 9 10 11]][[12 13 14 15][16 17 18 19][20 21 22 23]]]
bbb = [[[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]][[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]][[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 1 2 3 0 0 0 0 0 0 0][ 0 0 0 0 0 0 4 5 6 7 0 0 0 0 0 0 0][ 0 0 0 0 0 0 8 9 10 11 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]][[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 12 13 14 15 0 0 0 0 0 0 0][ 0 0 0 0 0 0 16 17 18 19 0 0 0 0 0 0 0][ 0 0 0 0 0 0 20 21 22 23 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]][[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]][[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]][[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0][ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]]
np.pad()详解相关推荐
- 【python】numpy库np.percentile详解
在python中计算一个多维数组的任意百分比分位数,此处的百分位是从小到大排列,只需用np.percentile即可-- a = range(1,101) #求取a数列第90%分位的数值 np.per ...
- 时间复杂度以及NP问题详解
什么是P问题.NP问题和NPC问题 这或许是众多OIer最大的误区之一. 你会经常看到网上出现"这怎么做,这不是NP问题吗"."这个只有搜了,这已经被证明是NP问 ...
- 【Numpy学习记录】np.cov详解
写在篇前 在概率论和统计学中,协方差用于衡量两个变量的总体误差.而方差是协方差的一种特殊情况,即当两个变量是相同的情况.其定义的数学形式是:Cov(X,Y)=E[(X−E(X))(Y−E(Y))] ...
- torch.flatten、np.flatten 详解
超链接:深度学习工作常用方法汇总,矩阵维度变化.图片.视频等操作,包含(torch.numpy.opencv等) B站视频讲解链接 1. 展平 :flatten torch版: x.flatten(n ...
- np.quantile()详解
numpy.quantile numpy.quantile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linea ...
- tf.pad详解(能懂版)
tf.pad:填充函数 tf.pad( tensor,paddings, mode='CONSTANT',name=None) tensor是要填充的张量 padings ,代表每一维填充多少行/列, ...
- np.argsort详解
说明 numpy.argsort(a, axis=-1, kind='quicksort', order=None) 功能: 将矩阵a按照axis排序,并返回排序后的下标 参数: a:输入矩阵, ax ...
- 深度学习-np.pad 填充详解
大家伙在学习深度学习的卷积网络里有一个填充的问题是难免遇到的 所以np给了pad()这个函数来实现填充 但是多维度(大多数情况下是三维的)的pad函数却很难理解 博主就稍微写一点自己的理解 试图帮助大 ...
- pandas新字段(数据列)生成、使用np.where或者apply lambda函数结合if else生成新的字段,详解及实战
pandas新字段(数据列)生成.使用np.where或者apply lambda函数结合if else生成新的字段,详解及实战 pandas apply用法: pandas apply方法的作用原理 ...
最新文章
- springcloud都有什么组件?这个列表不得不看!
- 禁用Cookie在web浏览器中读取/写入c#应用程序
- 状态压缩 之 UVA 10944 - Nuts for nuts..
- OpenSSH 命令注入漏洞(CVE-2020-15778)
- 解决easyExcel和poi版本冲突问题
- python verilog顶层连线_FPGA中顶层模块与各子模块之间的连接线类型
- Ajax学习笔记-基础概述-1
- linkedin领英账号限制被封了怎么办?
- matlab幅度调制滚动条的程序_利用MATLAB实现信号的幅度调制与解调
- Flex Builder 破解和注册方法
- 手把手教你批量保存花瓣图片到同一目录的技巧
- 计算机网络什么是互联网什么是网速,网速慢是什么原因怎么解决?
- Navicat导入连接
- 质量管理三个概念:QC、QA和QM 解析
- 有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中,谭浩强《c语言程序设计》第六章第四题
- uni-app直播实例|仿抖音小视频|uniapp仿陌陌直播
- win7计算机 管理缺失文件夹,win7文件夹选项不见了怎么办_win7没有文件夹选项的处理方法...
- 我的世界java版hud怎么设置_修改配置文件以关闭HUD和怪物隐身
- 实训日记三 人脸识别系统
- 移动端Swiper的一些尝试(中间完整,两边有内容,循环展示)