在机器学习以及深度学习的任务中,通常需要将处理好的数据以模型能接收的格式输入给模型,然后由模型通过一系列的运算,最终返回一个处理结果。然而,由于不同模型所接收的输入格式不一样,往往需要先对其进行一系列的变形和运算,从而将数据处理成符合模型要求的格式。
在矩阵或者数组的运算中,经常会遇到需要把多个向量或矩阵按某轴方向合并,或展平(如在卷积或循环神经网络中,在全连接层之前,需要把矩阵展平)的情况。下面介绍几种常用的数组变形方法。
修改指定数组的形状是 NumPy 中最常见的操作之一,常见的方法有很多,下表列出了一些常用函数和属性。
表1:Numpy 中改变向量形状的一些函数和属性
函数/属性
描述
arr.reshape()
重新将向量 arr 维度进行改变,不修改向量本身
arr.resize()
重新将向量 arr 维度进行改变,修改向量本身
arr.T
对向量 arr 进行转置
arr.ravel()
对向量 arr 进行展平,即将多维数组变成1维数组,不会产生原数组的副本
arr.flatten()
对向量 arr 进行展平,即将多维数组变成1维数组,返回原数组的副本
arr.squeeze()
只能对维数为1的维度降维。对多维数组使用时不会报错,但是不会产生任何影响
arr.transpose()
对高维矩阵进行轴对换
下面来看一些示例。
reshape() 函数
reshape() 函数用来改变向量的维度(不修改向量本身)&#