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

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

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

其函数原型如下:

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()的使用很简单,大家看下面的示例代码便知道怎么用了:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 出处:昊虹AI笔记网(hhai.cc)
# 用心记录计算机视觉和AI技术
# 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))

运行结果如下图所示:
利用Numpy库的方法reshape()对ndarray对象矩阵的形状进行调整_第1张图片
在这里插入图片描述
利用Numpy库的方法reshape()对ndarray对象矩阵的形状进行调整_第2张图片
利用Numpy库的方法reshape()对ndarray对象矩阵的形状进行调整_第3张图片
利用Numpy库的方法reshape()对ndarray对象矩阵的形状进行调整_第4张图片

你可能感兴趣的:(python基础,reshape)