(转载)Numpy学习(1)——数组填充np.pad()函数的应用

 

【时间】2018.11.02

【题目】(转载)Numpy学习——数组填充np.pad()函数的应用

概述

本文转载自 http://www.th7.cn/Program/Python/201712/1284487.shtml ,主要讲述了数组填充np.pad()函数的用法,原文在举例部分比较分散,不易看懂,这里给重新整理了下。

 

在卷积神经网络中,为了避免因为卷积运算导致输出图像缩小和图像边缘信息丢失,常常采用图像边缘填充技术,即在图像四周边缘填充0,使得卷积运算后图像大小不会缩小,同时也不会丢失边缘和角落的信息。在Python的numpy库中,常常采用numpy.pad()进行填充操作,具体分析如下:

 

1. np.pad()函数

1)语法结构

pad(array, pad_width, mode, **kwargs)

返回值:数组

2)参数解释

array——表示需要填充的数组;

 

pad_width——表示每个轴(axis)边缘需要填充的数值数目。 

参数输入方式为:((before_1, after_1), … (before_N, after_N)),其中(before_1, after_1)表示第1轴两边缘分别填充before_1个和after_1个数值。取值为:{sequence, array_like, int}

mode——表示填充的方式(取值:str字符串或用户提供的函数),总共有11种填充模式

**kwargs---表示填充的值,与pad_width相对应

3) 填充方式

‘constant’——表示连续填充相同的值,每个轴可以分别指定填充值,constant_values=(x, y)时前面用x填充,后面用y填充,缺省值填充0

‘edge’——表示用边缘值填充

‘linear_ramp’——表示用边缘递减的方式填充

‘maximum’——表示最大值填充

‘mean’——表示均值填充

median’——表示中位数填充

‘minimum’——表示最小值填充

‘reflect’——表示对称填充

‘symmetric’——表示对称填充

‘wrap’——表示用原数组后面的值填充前面,前面的值填充后面

1.1 常数填充模式——’constant’

示例:

【代码】:

import numpy as np

#原始输入数组A

A = np.arange(95,99).reshape(2,2)

print(A)

#在数组A的边缘填充constant_values指定的数值

#(3,2)表示在A的第[0]轴填充(二维数组中,0轴表示行),即在0轴前面填充3个宽度的0,比如数组A中的95,96两个元素前面各填充了3个0;在后面填充2个0,比如数组A中的97,98两个元素后面各填充了2个0

#(2,3)表示在A的第[1]轴填充(二维数组中,1轴表示列),即在1轴前面填充2个宽度的0,后面填充3个宽度的0np.pad(A,((3,2),(2,3)),'constant',constant_values = (0,0))

#constant_values表示填充值,且(before,after)的填充值等于(0,0)

B = np.pad(A,((3,2),(2,3)),'constant',constant_values = ((0,0),(1,2)))

print(B)

 

【运行结果】:

1.2 边缘值填充模式——’edge’

示例

【代码】:

import numpy as np

A = np.arange(1,5).reshape(2,2) #原始输入数组B

print ("A =\n",A)

B = np.pad(A,((1,2),(2,1)),'edge') # 注意先填充0轴,后面填充1轴,依次填充

print("B = \n" ,B)

【运行结果】:

1.3 边缘最大值填充模式——’maximum’

示例

【代码】

import numpy as np

A = np.arange(1,5).reshape(2,2) #原始输入数组A

print ("A =\n",A)

B = np.pad(A,((1,2),(2,1)),'maximum')

print("B = \n" ,B)

【运行结果】

 

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值