python中numpy矩阵的零填充

这篇具有很好参考价值的文章主要介绍了python中numpy矩阵的零填充。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

需求:

 方法:

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

 二、pad函数

 其他想法


需求:

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

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

python中numpy矩阵的零填充

 python中numpy矩阵的零填充

 python中numpy矩阵的零填充

 

 方法:

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

一、再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)

python中numpy矩阵的零填充

python中numpy矩阵的零填充

 其他想法

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

到了这里,关于python中numpy矩阵的零填充的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【python】使用numpy创建同心矩阵

    输入一个正奇数N,创建一个N*N的矩阵满足: 1. 矩阵中心的元素为N,其外层被N-1包围; 2. N-1的外层被N-2包围; 3. 依次循环,直到形成一个N*N的矩阵。 很容易可以计算得出,矩阵元素从内到外递减,最外层的元素为(N+1)/2. 我们可以使用numpy从外向内地填充矩阵;首先生成一个

    2024年02月13日
    浏览(43)
  • Python numpy - 数组与矩阵的运算

    目录  数组array 一 数组的函数 unique函数  sum函数  max函数 二 数组的加减 三 数组的乘除  矩阵matrix 一 矩阵的生成 二 矩阵的加减 三  矩阵的乘法 创建数组a和b用来运算(至少两个) 数组常用函数 函数 作用 unique() 求数组里的唯一值,输出从小到大排列 sum() 对数组整

    2024年02月11日
    浏览(45)
  • Python学习(2)-NumPy矩阵与通用函数

    文章首发于:My Blog 欢迎大佬们前来逛逛 data:表示输入的 数组 或者 字符串 ,使用‘,’分割列,使用‘;’分割行 创建两个普通的矩阵: 需要注意:mat创建的矩阵是不会产生副本的,即 共享内存 : matrix也是创建矩阵的: data:数组或者字符串,与mat一样 copy:表示创建

    2024年03月25日
    浏览(31)
  • Python 使用numpy.bincount计算混淆矩阵

    Confusion matrix using numpy.bincount. np.bincount 用于统计一个非负数组中元素的出现次数。函数格式如下: 通常默认数组 x x

    2024年02月07日
    浏览(39)
  • 【Python】如何用 python 计算矩阵相乘 - numpy.dot()

    使用 Numpy 包里的 dot() 函数。 该函数主要功能有两个: 向量点积 和 矩阵乘法 。 格式: x.dot(y) 等价于 np.dot(x,y) x 是m × n 矩阵 ,y 是 n×m 矩阵,则 x.dot(y) 得到 m×m 矩阵。 向量相乘,得到内积 输出结果: 矩阵相乘,得到矩阵的积 (1)实例 1 输出结果: (2)实例 2 输出结果

    2024年02月11日
    浏览(38)
  • Python库第一课:基础Numpy知识(下):矩阵

            好的,我们今天继续来学习Numpy的基础,昨天,已经介绍完Numpy的成员之一——数组,今天,在接着介绍其另一大成员——矩阵,也是应用非常广泛的成员。         矩阵,在线性代数中是几乎贯穿全文的成员,因此,这里需要较高的线性代数的基础。在这里,默认

    2024年02月03日
    浏览(54)
  • Python中范数计算以及numpy矩阵的运算

    1.1 定义: ​ 范数(norm)是数学中的一种基本概念。在泛函分析中,它定义在赋范线性空间中,并满足一定的条件,即①非负性;②齐次性;③三角不等式。它常常被用来度量某个向量空间(或矩阵)中的每个向量的长度或大小。 ​ 最常见的范数就是p范数。若 x = [ x 1 , x 2 .

    2023年04月09日
    浏览(33)
  • Python,Numpy 轻松实现矩阵每一列升序排列

    my_array.sort()改变有序数组并返回已排序数组。 np.sort(my_array)返回已排序数组的副本,因此原始数组不会改变。 以下是可选参数。 axis:int,可选—要排序的轴。默认值为-1,表示沿最后一个轴排序。 kind:{\\\'quicksort\\\',\\\'mergesort\\\',\\\'heapsort\\\',\\\'stable\\\'},可选—排序算法。默认为\\\'quic

    2024年02月11日
    浏览(43)
  • 电气论文:基于价格弹性矩阵的需求侧响应(python实现)

    专栏解锁后可以查看该专栏所有文章 参考文章 首先看下电价是如何影响负荷的

    2024年02月13日
    浏览(83)
  • 【Python】机器学习基础前置:矩阵的表示与定义 | Numpy 库 | Identity 身份矩阵 | 逆矩阵和转置

        💭 写在前面: 我们先介绍线性方程体系的基本概念和矩阵表示方法,矩阵的定义、加法、乘法、逆矩阵、转置和标量乘法等。然后讲解如何解决线性方程组问题,包括解集形式、行阶梯形矩阵、计算逆置和解决线性方程组的算法等。本节将补充线性代数的基础知识,为

    2024年02月02日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包