NumPy数组的转置和轴对换
在 NumPy 中,利用 transpose()、ndarray.T、rollaxis() 和 swapaxes() 等函数可实现翻转数组的操作。
transpose() 函数
该函数可实现翻转给定数组的维度,并且返回数组的 1 个视图(View)。使用transpose()函数的方法如下:numpy.transpose(arr)
其中,参数 arr 表示要转置的数组。例如 ar r是一个 3 行 5 列数组,numpy.transpose(arr) 函数就会返回 arr 数组转置为 5 行 3 列的数组视图,而原数组 arr 不改变。ndarray.T 函数
该函数是属于 ndarray 类,作用类似于 numpy.transposerollaxis() 函数
该函数可实现向后滚动特定的轴,直到 1 个特定位置。使用 rollaxis() 函数的方法如下:numpy.rollaxis(arr,axis,start)
其中,参数 arr 表示数组;axis 表示要向后滚动的轴,其他轴的相对位置不会改变;start 表示滚动到特定位置,默认为零,表示完整的滚动。swapaxes() 函数
该函数可交换数组的两个轴。NumPy1.10 之前的版本会返回交换后数组的视图。使用 swapaxes() 函数的方法如下:numpy.swapaxes(arr,axis1,axis2)
其中,参数 arr 表示数组,axis1 表示对应第 1 个轴的整数,axis2 表示对应第 2 个轴的整数。翻转数组的示例
示例代码 example1 如下。# -*- coding: UTF-8 -*- import numpy as np #创建数组2行5列 arr = np.arange(10).reshape(2,5) print('原数组:',arr) #用transpose函数转置 print('转置数组:') print(np.transpose(arr)) #用ndarray.T转置 print('转置数组:') print(arr.T) #用rollaxis函数 arr = np.arange(8).reshape(2,2,2) print('原数组:',arr) # 将轴 2 滚动到轴 0(宽度到深度) print('调用rollaxis函数:') print(np.rollaxis(arr,2)) # 将轴 0 滚动到轴 1(宽度到高度) print('调用rollaxis函数:') print(np.rollaxis(arr,2,1)) #用swapaxes函数 arr = np.arange(8).reshape(2, 2, 2) print('原数组:',arr) # 现在交换轴 0(深度方向)到轴 2(宽度方向) print('调用swapaxes函数后的数组:') print(np.swapaxes(arr, 2, 0))