Numpy swapaxes() 函数
Numpy swapaxes() 函数可以交换数组中两个指定的轴,从而有效地重新排序其维度。
此函数可用于在不更改底层数据的情况下将数据转置到不同的方向。例如,给定一个形状为 (2, 3, 4) 的数组,调用 swapaxes(arr, 0, 2) 将返回一个形状为 (4, 3, 2) 的数组。
此函数需要三个参数,即要修改的数组和要交换的两个轴索引。返回的数组是原始数组的视图,因此不会复制任何数据,这对于处理大型数据集非常高效。
语法
Numpy swapaxes() 函数的语法如下:-
numpy.swapaxes(a, axis1, axis2)
参数
以下是 Numpy swapaxes() 函数的参数:-
- a : 需要交换轴的输入数组。
- axis1 : 需要交换的第一个轴。
- axis2 : 需要交换的第二个轴交换。
返回值
此函数返回输入数组的视图,其中指定轴已交换。数据不会被复制,只是视图发生了变化。
示例 1
以下是 Numpy swapaxes() 函数的示例,该函数用于交换二维数组的行和列 -
import numpy as np # 创建二维数组 array_2d = np.array([[1, 2, 3], [4, 5, 6]]) print("原始数组: ", array_2d) # 交换轴 swapped_array_2d = np.swapaxes(array_2d, 0, 1) print("交换后的轴数组: ", swapped_array_2d)
输出
原始数组: [[1 2 3] [4 5 6]] 交换轴数组: [[1 4] [2 5] [3 6]]
示例 2
此示例通过相应地修改四维数组的形状,交换了其第二和第三个轴。
import numpy as np # 创建四维数组 array_4d = np.arange(24).reshape(2, 3, 4, 1) print("原始数组形状:", array_4d.shape) # 交换轴 swapped_array_4d = np.swapaxes(array_4d, 1, 2) print("交换轴数组形状:", swapped_array_4d.shape)
输出
原始数组形状:(2, 3, 4, 1) 交换轴数组形状:(2, 4, 3, 1)
示例 3
以下示例演示如何使用 swapaxes() 函数在三维 ndarray 中交换轴 -
import numpy as np # 创建三维 ndarray a = np.arange(8).reshape(2, 2, 2) print('原始数组:') print(a) print(' ') # 在轴 0(沿深度)和轴 2(沿宽度)之间交换数字 swapped_array = np.swapaxes(a, 2, 0) print('调用 swapaxes 函数后的数组:') print(swapped_array)
输出
原始数组: [[[0 1] [2 3]] [[4 5] [6 7]]] 调用 swapaxes 函数后的数组: [[[0 4] [2 6]] [[1 5] [3 7]]]