python中numpy矩阵的零填充的示例代码

 更新时间:2022年08月09日 10:41:49   作者:Eric加油学!  
本文主要介绍了python中numpy矩阵的零填充的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

需求:

对于图像处理中的一些过程,我需要对读取的numpy矩阵进行size的扩充,比如原本是(4,6)的矩阵,现在需要上下左右各扩充3行,且为了不影响数值计算,都用0填充。

比如下图,我有一个4x5大小的全1矩阵,但是现在我要在四周都加上3行的0来扩充大小,最后扩充完还要对原区域进行操作。

 

 方法:

想到了几种方法,记录一下。

一、再new一个更大的所需要的矩阵大小 

    a = np.ones((4,5))    #假设原矩阵是4x5的全1矩阵
    print(a.shape)        
    
    b_pad = np.zeros((4 + 6, 5 + 6))    #要四周扩充3行,所以宽高都要加6
    h,w = b.shape
    print(b.shape)        #(10,11)
    b[3:h-3,3:w-3] = a    #再把原矩阵放到相应位置
    print(b)
 
    #如果要对原数值一一进行操作,可以定位到各元素
    for i in range(3,h-3):        
        for j in range(3,w-3):
            b[i][j] = 2
    print(b)

这个方法简单粗暴,逻辑上比较好理解,但是会消耗内存空间

 二、pad函数

其实numpy已经封装了一个函数,就是pad

    a = np.ones((4,5))
    print(a.shape)
    b = np.pad(a,3,'constant')    #对a,上下左右各扩充3行,constant缺省,默认为0
    print(b)
    print(b.shape)
 
    #如果只要左上角扩充的话
    c = np.pad(a,(3,0),'constant')
    print(c)
    print(c.shape)

 其他想法

还有两种想法,但我没实践过。一个是 二维转成一维,然后用list在每一组的前后可以加0,用append连接,最后再转成二维。这样子的话,0想放在哪里就可以自己定了。 还有一种是用torch.nn,在pytorch中有对于卷积的0填充padding。不过需要把numpy转成tensor张量,最后再转回来,比较麻烦。

到此这篇关于python中numpy矩阵的零填充的示例代码的文章就介绍到这了,更多相关numpy矩阵零填充内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python自定义模块的创建与使用

    Python自定义模块的创建与使用

    这篇文章主要给大家介绍了关于Python自定义模块创建与使用的相关资料,文中还给大家分享了python打包用户自定义模块的方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • Python中字符串列表的相互转换实际应用场景

    Python中字符串列表的相互转换实际应用场景

    在Python编程中,经常会遇到需要将字符串列表相互转换的情况,这涉及到将逗号分隔的字符串转换为列表,或者将列表中的元素连接成一个字符串,本文将深入讨论这些情景,并提供丰富的示例代码,帮助读者更全面地理解字符串列表的转换操作
    2023-12-12
  • Python网络爬虫之爬取微博热搜

    Python网络爬虫之爬取微博热搜

    这篇文章主要介绍了Python网络爬虫之爬取微博热搜的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • Python pyecharts绘制条形图详解

    Python pyecharts绘制条形图详解

    pyecharts是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。本文将利用其绘制多样的条形图,需要的可以参考一下
    2022-04-04
  • 68行Python代码实现带难度升级的贪吃蛇

    68行Python代码实现带难度升级的贪吃蛇

    本文主要介绍了Python代码实现带难度升级的贪吃蛇,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Python用csv写入文件_消除空余行的方法

    Python用csv写入文件_消除空余行的方法

    今天小编就为大家分享一篇Python用csv写入文件_消除空余行的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • python一键升级所有pip package的方法

    python一键升级所有pip package的方法

    下面小编就为大家带来一篇python一键升级所有pip package的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Python中不可忽视的docstring妙用

    Python中不可忽视的docstring妙用

    docstring是Python中用于记录模块、类、方法和函数行为的字符串,帮助开发者和用户快速了解代码的功能和用法,本文将详细介绍docstring的使用,需要的可以参考下
    2024-12-12
  • Python中函数eval和ast.literal_eval的区别详解

    Python中函数eval和ast.literal_eval的区别详解

    eval函数在Python中做数据类型的转换还是很有用的。它的作用就是把数据还原成它本身或者是能够转化成的数据类型。那么eval和ast.literal_val()的区别是什么呢?本文将大家介绍关于Python中函数eval和ast.literal_eval区别的相关资料,需要的朋友可以参考下。
    2017-08-08
  • python 常见字符串与函数的用法详解

    python 常见字符串与函数的用法详解

    这篇文章主要介绍了python 常见字符串与函数的用法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11

最新评论