昊虹AI笔记网

 找回密码
 立即注册
搜索
查看: 10402|回复: 0
收起左侧

利用Numpy库的方法reshape()对ndarray对象矩阵的形状进行调整

[复制链接]

251

主题

254

帖子

1147

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1147
昊虹君 发表于 2022-11-26 22:56 | 显示全部楼层 |阅读模式
利用Numpy库的方法reshape()对ndarray对象矩阵的形状进行调整

调整矩阵或图像的形状是一个常用的操作。
在Numpy库中,可使用函数reshape()实现此操作。

其函数原型如下:
  1. dst = numpy.reshape(a, newshape[, order='C'])
复制代码

参数意义如下
a—需要调整形状的矩阵。
newshape—调整后矩阵的形状,用一个元组进行表示。可将某个维度的值设为-1,此时这个维度的值函数会根据矩阵元素的个数自动计数出。
order—这个参数的可选值有C、F、A,默认值为C,这个参数大家一般不需要理解,用默认的值‘C’就可以。如果想详细了解,可以参考我的另一篇博文:https://www.hhai.cc/thread-154-1-1.html

使用函数reshape()时需要注意,调整后的尺寸应和矩阵的元素个数兼容,比如12个元素的矩阵,我们可以分成(4,3)或(2,6),但不能分成(3,5)。

函数reshape()的使用很简单,大家看下面的示例代码便知道怎么用了:
[Python] 纯文本查看 复制代码
# -*- coding: utf-8 -*-
# 出处:昊虹AI笔记网(hhai.cc)
# 用心记录计算机视觉和AI技术

# 博主微信/QQ 2487872782
# QQ群 271891601
# 欢迎技术交流与咨询

# OpenCV的版本为4.4.0

import numpy as np

if __name__ == '__main__':
    # 新建矩阵A1
    A1 = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
    # 将A1调整为3*4的单通道图像(矩阵)
    img1 = A1.reshape((3, 4))

    # 将A1调整为 2*2*3的两通道图像(矩阵)
    img2 = A1.reshape((2, 2, 3))

    # 将某一维度的值设为-1,函数自动计算出其值
    img3 = A1.reshape((2, 2, -1))

运行结果如下图所示:

                                          

                                          

                                          

                                          
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|昊虹AI笔记网 ( 蜀ICP备2024076726 )

GMT+8, 2025-11-15 04:24 , Processed in 0.023624 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表