zoukankan      html  css  js  c++  java
  • numpy.pad

    np.pad()常用与深度学习中的数据预处理,可以将numpy数组按指定的方法填充成指定的形状。

    np.pad()

    对一维数组的填充

    import numpy as np
    arr1D = np.array([1, 1, 2, 2, 3, 4])
    '''不同的填充方法'''
    print 'constant:  ' + str(np.pad(arr1D, (2, 3), 'constant'))
    print 'edge:  ' + str(np.pad(arr1D, (2, 3), 'edge'))
    print 'linear_ramp:  ' + str(np.pad(arr1D, (2, 3), 'linear_ramp'))
    print 'maximum:  ' + str(np.pad(arr1D, (2, 3), 'maximum'))
    print 'mean:  ' + str(np.pad(arr1D, (2, 3), 'mean'))
    print 'median:  ' + str(np.pad(arr1D, (2, 3), 'median'))
    print 'minimum:  ' + str(np.pad(arr1D, (2, 3), 'minimum'))
    print 'reflect:  ' + str(np.pad(arr1D, (2, 3), 'reflect'))
    print 'symmetric:  ' + str(np.pad(arr1D, (2, 3), 'symmetric'))
    print 'wrap:  ' + str(np.pad(arr1D, (2, 3), 'wrap'))

    解释:
    第一个参数是待填充数组
    第二个参数是填充的形状,(2,3)表示前面两个,后面三个
    第三个参数是填充的方法
    填充方法:
    constant连续一样的值填充,有关于其填充值的参数。constant_values=(x, y)时前面用x填充,后面用y填充。缺参数是为0000。。。
    edge用边缘值填充
    linear_ramp边缘递减的填充方式
    maximum, mean, median, minimum分别用最大值、均值、中位数和最小值填充
    reflect, symmetric都是对称填充。前一个是关于边缘对称,后一个是关于边缘外的空气对称╮(╯▽╰)╭
    wrap用原数组后面的值填充前面,前面的值填充后面
    也可以有其他自定义的填充方法

    对多维数组的填充

    import numpy as np
    arr3D = np.array([[[1, 1, 2, 2, 3, 4], [1, 1, 2, 2, 3, 4], [1, 1, 2, 2, 3, 4]], 
                      [[0, 1, 2, 3, 4, 5], [0, 1, 2, 3, 4, 5], [0, 1, 2, 3, 4, 5]], 
                      [[1, 1, 2, 2, 3, 4], [1, 1, 2, 2, 3, 4], [1, 1, 2, 2, 3, 4]]])
                      '''对于多维数组'''
    print 'constant:  
    ' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'constant'))
    print 'edge:  
    ' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'edge'))
    print 'linear_ramp:  
    ' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'linear_ramp'))
    print 'maximum:  
    ' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'maximum'))
    print 'mean:  
    ' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'mean'))
    print 'median:  
    ' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'median'))
    print 'minimum:  
    ' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'minimum'))
    print 'reflect:  
    ' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'reflect'))
    print 'symmetric:  
    ' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'symmetric'))
    print 'wrap:  
    ' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'wrap'))

  • 相关阅读:
    由于某些原因无法博客搬家,现在换马甲了 http://blog.csdn.net/qq_32066409
    2017-11-23加深记忆
    (转)poi操作Excel, 各种具体操作和解释
    (转)sqoop常用命令http://www.cnblogs.com/cenyuhai/p/3306037.html
    2017年10月24日制定的3个月的学习目标与计划!!!!!
    (转)Git 提交的正确姿势:Commit message 编写指南
    (转)linux下装tomcat
    简单理解jQuery中$.getJSON、$.get、$.post、$.ajax用法
    程序员必须知道的几个Git代码托管平台(转)
    http://www.blogjava.net 博客园专门针对java的,里面有些大神
  • 原文地址:https://www.cnblogs.com/zongfa/p/8995739.html
Copyright © 2011-2022 走看看